关于点击事件的jQuery

时间:2014-08-19 18:18:51

标签: jquery onclick

为什么这段代码不起作用?

jQuery(".ui-accordion-header").on("click", function(event){ ... }

这个有用吗?

jQuery(document).on("click", ".ui-accordion-header", function(event){ ... }

谢谢。

2 个答案:

答案 0 :(得分:2)

第一行仅在dom中已存在.ui-accordion-header时才有效。有时,元素会动态创建并插入到dom中。在这种情况下,侦听器不会绑定到新创建的元素。

第二种方式起作用的原因是因为听众被绑定在document级别。因此,只要在文档中进行任何新的更改,侦听器仍然是绑定的。

答案 1 :(得分:1)

当您调用jQuery(".ui-accordion-header")时,jQuery会将该方法分配给加载时存在的所有对象(加载页面时)。因此,如果在设置页面时具有类名ui-accordion-header的对象不是DOM元素,则不会将该方法分配给它。

jQuery(document)会将其分配给文档,只要点击.ui-accordion-header,该文档就会响应。基本上,如果它是一个DOM对象,将在页面加载后的某个时间创建,请坚持使用jQuery(document)方法。顺便问一下,为什么不使用$?例如,$(document)$(".ui-accordion-header")