1

Моего расширения хрома выглядит следующим образом:на() не работает, как ожидалось, и не работает для вновь загруженного контента

$(document).ready(function() { 
    ... 
    $("input[type!='password'], textarea").on("keypress", function (event) { 
     ... 
    }); 
}); 

Это реагирует, как и ожидался для нормально загруженного контента, но не работает для входов или textareas загружаются позже.

Я, хотя это должно было быть сделано, я использую его неправильно?

Я играл с чем-то вроде этого, чтобы попытаться решить, но без успеха

$(doocument).on("keypress", "input[type!='password'], textarea".... 

Here is a live example in jsfiddle, первый вход работает как и ожидалось, сгенерированные из них не делают.

+1

Пожалуйста, воспроизводить, что на http://jsfiddle.net – zerkms

+0

@zerkms редактировал, сделано! – Trufa

+0

Вы даже попробовали последний селектор, который вы предлагаете -> [** Fiddle **] (http://jsfiddle.net/yz7F5/4/) – adeneo

ответ

2
$(document).on("keypress", "input[type!='password'], textarea", function (event) { 
    alert("this works!"); 
}); 

Слушатель прикрепляется к document, и любые события нажатия клавиш будут проверены на input[type!='password'] и textarea.

Если HTML разметка была построена таким образом, чтобы был один родительский контейнер input[type!='password'] и textarea, вы могли бы заменить $(document) с $('.parent-container') только прикрепить слушателя на этом элементе, в отличие от всего документа.

EDIT: Вот пример: http://jsfiddle.net/yz7F5/5/