我有一个 Jquery Mobile shell 页面,我正在使用 Ajax 将表单加载到其中。该表单有一些复选框,我需要绑定(bind)到它们。
奇怪的是,我可以让它直接在按钮上设置监听器,如下所示:
$('input[name="ohneiln"]').on('change', function() {
alert("hello");
});
但是当我尝试将监听器设置为 $(document)
并委托(delegate)给 checkbox
时,监听器永远不会触发:
$(document).on('change', 'input[name="ohneiln"]', function() {
alert("hello");
});
问题:
使用 $(document).on()
通过 Ajax 加载的“动态”元素设置事件绑定(bind)的正确方法是什么?对于 change
事件来说这是不可能的吗?或者为什么我会遇到麻烦?
感谢您的帮助!
最佳答案
.on()
方法的工作方式会根据您的使用方式而变化。在第一个示例中,.on()
方法的行为与 bind
类似,并且仅适用于已存在的元素。
第二个示例在很多方面的行为类似于 .live()
或 delegate()
。并且适用于稍后添加的元素。
阅读文档以获取详细说明 http://api.jquery.com/on/
关于jquery-mobile - 如何对通过 Ajax 拉入的元素使用 Jquery document.on()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10864683/