这个问题已经在这里有了答案: > Direct vs. Delegated – jQuery .on() 5个
嗨,我有一个正在使用jQuery的Ajax调用,想知道这些方法在选择点击元素时有什么区别,
第一
$(this).on('click', 'button', function (){ });
第二
$('button').on('click', function (){ });
第三
$('button').click(function { });
我的Ajax调用从数据库中选择新数据,并在成功时更新内容,并从按钮上具有ID的数据对象更改数据,第一个打开,但第二个和第三个一次都只能工作一次,失败,我想知道为什么,谢谢大家!
解决方法:
根据文档:
.click()
This method is a shortcut for .on(‘click’, handler)
正如您在示例中所展示的,它们几乎相同,但是您应该使用on()方法,因为它允许您进行动态委托.
The .on() method attaches event handlers to the currently selected set
of elements in the jQuery object. As of jQuery 1.7, the .on() method
provides all functionality required for attaching event handlers.
范例:
$("#dataTable tbody").on("click", "tr", function(event){
alert($(this).text());
});
该代码将在该表内创建的所有元素上触发警报,此外,如果您发出AJAX请求并将它们附加到同一表中,则事件处理程序将被动态附加.
要了解有关on()代表如何检查this的更多信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。