一尘不染

jQuery $(document).on('click',选择器,…)vs $(selector).on('click',

ajax

我过去一直使用:

$(selector).on('click', function )

但是今天,我将其绑定到文档准备就绪(通过ajax调用)后出现的对象上。绑定不会粘住。

谷歌搜索后,我看到了:

$(document).on( event, selector, function )

句法。更改为此之后,我的代码开始工作了。

我从jquery休息了一下,觉得自己错过了一些东西,这2种方法真的有区别吗?这些是什么?

这后一种语法是现在对新元素(用于服务的目标livequery插件)进行绑定的唯一方法吗?


阅读 779

收藏
2020-07-26

共1个答案

一尘不染

第一个示例将事件侦听器直接绑定到元素。它为每个元素添加一个单独的侦听器,并且只会响应添加侦听器时DOM中元素上的事件。

第二个示例将事件侦听器绑定到文档对象。它会检查任何可能冒泡到文档对象的事件,并在触发该函数之前测试该事件开始于的元素是否与选择器匹配。绑定侦听器时,不需要元素存在于文档中。在事件冒泡到文档对象之前,有可能捕获(由另一个侦听器)事件并停止传播。

2020-07-26