on()不能按预期工作,也不适用于新加载的内容

时间:2013-03-24 21:07:54

标签: jquery google-chrome-extension dynamic-data content-script

我的Chrome扩展程序如下:

$(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 个答案:

答案 0 :(得分: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')以仅附加监听器在该元素上,而不是整个文档。

编辑: 这是一个例子:http://jsfiddle.net/yz7F5/5/