jQuery避免重新绑定,因为元素被添加到页面中

时间:2012-11-22 06:46:13

标签: jquery function events initialization bind

我有一个大的复杂方法绑定到页面上的所有输入。但是,有时输入会动态添加到页面中,因此不会绑定到同一方法。我认为通过将事件绑定到变量并使用附加输入更新变量可以很聪明,因为它们被添加到页面中......但是没有。

inputs.click(function(){ // stuff });

// add inputs to page

inputs = $('input');

有没有一种偷偷摸摸的方式来做到这一点? OBV我可以把整个shebang ($('input').click()...)扔进一个函数并重新启动......但是肯定有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您必须将事件绑定到页面上已有的元素,因此请使用on()并绑定到页面上已存在的动态输入的最近祖先,例如表单本身:

$('form').on('change', 'input', function() {
    // do something
});

第一个字符串是一个以空格分隔的事件列表,可以作出反应,第二个字符串是一个jQuery选择器,用于标识事件的目标(如果不是form本身)。

参考文献: