Javascript 为什么没有触发点击事件Jquery?
我有一组id以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(){ //
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
});