2014-01-23 141 views
0

我想触发元素,而我的Checkbox被选中或未选中。 它完美罚款:jquery更改()不触发新元素

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

的事情是,如果我创建客户端一个新的复选框,则.change()犯规触发。

我也试过:

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

,它不工作以及..

没有人知道什么是错?

+1

什么版本的jQuery?你可能想.on() – Liam

+0

即时通讯使用1.8.3版本 – thormayer

+0

是的,你需要使用'.on'。 '.live'已弃用。 [这是文档](http://api.jquery.com/on/) – Liam

回答

1

嘿,这是一个jQuery版本的问题.on已经取代了。由于生活的一些问题,这些问题可以此链接查看,

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

,你可以写你这样的代码。

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

用途:

的jQuery 1.7进一步

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

对于旧版本

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

}); 
2

试试这个:

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

}); 

顺便说一句,live()被弃用的JQ uery版本1.7,您应该使用on()来代替。

1

使用

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

由于jQuery的1.7版本中,()方法是为bind(), live()delegate()方法的新的替代。

注:事件处理程序使用on()方法,才能既为当前和未来元素的工作(如通过脚本创建一个新的元素)

2

您应该使用.on(升级你的jQuery版本1.7本附)。

的语法是:

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

}); 
0

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

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

更改侦听器不使用它。

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

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