为什么
$(document).on("keyup blur", "#my_selector", function() {
//DO SOMETHING
});不过,似乎很管用
$("#my_selector").on("keyup blur", function() {
//DO SOMETHING
});不是吗?我把它们都放在我的现成函数中,虽然上面的函数可以工作,但是低的函数不能工作,这是在我的previous question的上下文中。
发布于 2013-08-02 11:56:07
$('selector').on('event')的工作方式类似于$.bind。
$(document).on('event', 'selector')的工作方式类似于$.live。
换句话说,$('selector').on将事件处理程序附加到当前存在的节点。
如果事件处理程序创建时$('#my_selector')为空,则事件处理程序将不会附加到该事件处理程序。
另一方面,$(document)总是可用的,您可以始终将事件处理程序附加到它。
$(document).on('event', 'selector', function() { ... })将事件处理程序附加到文档中,并通过“选择器”对其进行筛选。因此,这就像以前版本的$().live()中的jQuery一样,您应该以这种方式使用事件绑定。
发布于 2013-08-02 11:51:53
如果#my_selector项是动态添加的(例如在Ajax调用完成后),那么您可能在DOM中元素存在之前附加direct事件处理程序。在这种情况下,事件处理程序将不附加任何内容。第一个附加了一个delegated事件处理程序,所以元素何时出现在DOM中并不重要,事件处理程序将被执行。
https://stackoverflow.com/questions/18016170
复制相似问题