Javascript 为什么没有触发点击事件Jquery?

Javascript 为什么没有触发点击事件Jquery?,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我有一组id以somename开头的复选框,我想捕获这些复选框的单击事件。之前我通过jquery完成了这项工作。i、 e.$(“输入[id^='somename'])。单击(函数(){ //我的代码如下 }) 但这一次不行了。为什么? 另外,在发出一些ajax请求后,页面完全加载后,通过javascript创建元素。我不知道这是否是问题所在?如果在加载页面后创建了元素,请使用live $("input[id^='somename']").live('click', function(){ //

我有一组id以
somename
开头的复选框,我想捕获这些复选框的单击事件。之前我通过jquery完成了这项工作。i、 e.
$(“输入[id^='somename'])。单击(函数(){
//我的代码如下
})
但这一次不行了。为什么?


另外,在发出一些ajax请求后,页面完全加载后,通过javascript创建元素。我不知道这是否是问题所在?

如果在加载页面后创建了元素,请使用
live

$("input[id^='somename']").live('click', function(){ // my code follows here })
注意:您的搜索选择器是“somename”,但您在属性ID上搜索它,您确定不需要:

$("input[name^='somename']").live('click', function(){ // my code follows here })

相反?

如果元素是在页面加载后创建的,只需使用
live

$("input[id^='somename']").live('click', function(){ // my code follows here })
注意:您的搜索选择器是“somename”,但您在属性ID上搜索它,您确定不需要:

$("input[name^='somename']").live('click', function(){ // my code follows here })

相反?

而不是
。单击()
尝试
.change()
事件。

而不是
。单击()
尝试
.change()
事件。

这确实可能是问题所在。替换
。单击
.live()

你应该很好。
由于对
.click
的调用只是
.bind('click',fnc)
的快捷方式,因此,如果调用此函数时元素不在DOM中,则此操作将不起作用。比使用
.live()
更好的方法是使用
.delegate()
。阅读:


,这确实可能是个问题。替换
。单击
.live()

你应该很好。
由于对
.click
的调用只是
.bind('click',fnc)
的快捷方式,因此,如果调用此函数时元素不在DOM中,则此操作将不起作用。比使用
.live()
更好的方法是使用
.delegate()
。阅读:


使用标准绑定函数仅对绑定时存在的元素有效。您需要使用一种称为事件委派(eventdelegation)的方法,在这种方法中,DOM树上的元素会被通知子元素上的事件。最好的方法是:

这假设您有一个元素
#containingElement
,其中包含要捕获事件的所有元素


注意,其他回答建议
live
delegate
使用相同的后端代码,但由于各种原因,
delegate
效率更高。

使用标准绑定函数仅适用于绑定时存在的元素。您需要使用一种称为事件委派(eventdelegation)的方法,在这种方法中,DOM树上的元素会被通知子元素上的事件。最好的方法是:

这假设您有一个元素
#containingElement
,其中包含要捕获事件的所有元素


注意,其他回答建议
live
delegate
使用相同的后端代码,但由于各种原因,
delegate
效率更高。

我认为,因为您希望将此应用于DOM中动态创建的元素,所以必须使用jQuery。方法:


我相信,因为您希望将其应用于DOM中动态创建的元素,所以必须使用jQuery。方法:


+1的正确答案,并提到你不想使用id。这太棒了。。很抱歉将
somename
放在
someid
+1中以获得正确答案,并提到您不想使用id。这太棒了。。很抱歉把
somename
放在
someid
上,谢谢你的完美答案…:)谢谢你的完美答案…)
$("input[id^='somename']").live('click', function(e) {
     // Your code
});