首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`$(文档).on(“click”,"a"`与`$("a").click(`

`$(文档).on(“click”,"a"`与`$("a").click(`
EN

Stack Overflow用户
提问于 2015-10-22 18:46:29
回答 3查看 11.5K关注 0票数 10

谁能告诉我这两个脚本有什么不同,我不是javascript/jquery专家。

代码语言:javascript
复制
$(document).on("click", "a", function () {
    i = $(this).data("value");
    alert(i)
})

$("a").click(function () {
    i = $(this).data("value");
    alert(i)
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-22 18:48:03

$(document).on("click", "a", function () {将在绑定事件时不存在的a元素上绑定事件。这被称为。

事件委派允许我们将单个事件侦听器附加到父元素,该侦听器将为与选择器匹配的所有后代触发,无论这些后代现在存在还是将来添加。

$("a").click(function () {将只将事件绑定到DOM中存在的a元素。

票数 26
EN

Stack Overflow用户

发布于 2015-10-22 18:48:22

第一个给出了event delegation,即它将事件与DOM中存在的元素绑定,并满足选择条件+任何在事件绑定(满足选择器条件)后添加到DOM中的元素将在动态添加到DOM时自动绑定。

而后者将事件与现有元素绑定在一起。

Delegated events

委托事件的优点在于,它们可以处理稍后添加到文档中的后代元素中的事件。通过选择在附加委托事件处理程序时保证存在的元素,可以使用委托事件来避免频繁附加和移除事件处理程序。

票数 3
EN

Stack Overflow用户

发布于 2015-10-22 18:48:42

第一个将检查文档上的每一次点击,并检查它是否来自"a“标签,如果是,则执行代码,这也与动态创建的"a”标签相关。

第二个将只为页面上已经存在的"a“元素执行代码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33279198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档