jquery change()不会触发新元素

时间:2014-01-23 09:44:31

标签: javascript jquery

我希望在检查或未选中Checkbox时触发元素。 它完美地适用于:

$('.myCheckbox:checkbox').change(function () {
//..
}

问题是,如果我在客户端上创建一个新的复选框,则.change()不会触发。

我也试过了:

$('.myCheckbox:checkbox').live('change',function () {

并且它也不起作用..

有谁知道什么是错的?

6 个答案:

答案 0 :(得分:2)

试试这个:

$(document).on('change', '.myCheckbox:checkbox', function() {

});

顺便说一句,自{jQuery version live()起不推荐使用1.7,您应该使用on()代替。

答案 1 :(得分:2)

您应该使用.on(将此jQuery版本升级到1.7)。

语法为:

$('.yourCheckboxContainer').on('change', '.myCheckbox:checkbox', function() {

});

答案 2 :(得分:1)

使用

$(document).on('change','.myCheckbox:checkbox',function () {
//..
}

从jQuery 1.7开始,on()方法是bind(), live()delegate()方法的新替代品。

注意:使用on()方法附加的事件处理程序适用于当前和FUTURE元素(如脚本创建的新元素)

答案 3 :(得分:1)

嘿,这是一个jquery版本问题.on已经替换.live因为一些问题,你可以在这个链接上看到的那些问题,

What's the difference between jQuery .live() and .on()

您可以像这样编写代码。

$(document).on('change','.myCheckbox:checkbox',function () {
// your code
});

答案 4 :(得分:0)

使用:

for jquery 1.7 Further

$(document).on('change','.myCheckbox:checkbox',function () {
//..
});

旧版

$('.myCheckbox:checkbox').live('change',function () {

});

答案 5 :(得分:0)

我如何理解您的问题,不是.live.on。这是关于你是否首先使用现有代码添加更改侦听器,然后向页面添加新的复选框,如

$(document).append($("<input type="checkbox" />"));

更改侦听器无法使用它。

这是正常的,因为添加侦听器时新的复选框不存在。在添加时,您必须将侦听器添加到新复选框。

$(document).append($("<input type="checkbox" />").change(whatever));