12

我有一个 Jquery Mobile shell 页面,我正在使用 Ajax 将表单加载到该页面中。该表单有一些复选框,我需要绑定到这些复选框。

奇怪的是,我可以让它直接在按钮上设置监听器,如下所示:

$('input[name="ohneiln"]').on('change', function() {
   alert("hello");
   });

但是,当我尝试将侦听器设置为$(document)并委托给 时checkbox,侦听器永远不会触发:

$(document).on('change', 'input[name="ohneiln"]', function() {
   alert("hello");
});

问题:
为通过 Ajax 加载的“动态”元素设置事件绑定的正确方法是什么$(document).on()?这对于事件来说是不可能的,change或者我为什么会遇到麻烦?

感谢帮助!

4

1 回答 1

11

该方法的.on()工作方式会根据您使用它的方式而有所不同。在您的第一个示例中,该.on()方法的行为类似于bind并且仅适用于已经存在的元素。

第二个示例的行为类似于.live()delegate()在许多方面。并且适用于稍后添加的元素。

阅读文档以获取详细说明http://api.jquery.com/on/

于 2012-06-02T18:32:31.367 回答