我有一个大的复杂方法绑定到页面上的所有输入。但是,有时输入会动态添加到页面中,因此不会绑定到同一方法。我认为通过将事件绑定到变量并使用附加输入更新变量可以很聪明,因为它们被添加到页面中......但是没有。
即
inputs.click(function(){ // stuff });
// add inputs to page
inputs = $('input');
有没有一种偷偷摸摸的方式来做到这一点? OBV我可以把整个shebang ($('input').click()...)
扔进一个函数并重新启动......但是肯定有更好的方法吗?
答案 0 :(得分:1)
您必须将事件绑定到页面上已有的元素,因此请使用on()
并绑定到页面上已存在的动态输入的最近祖先,例如表单本身:
$('form').on('change', 'input', function() {
// do something
});
第一个字符串是一个以空格分隔的事件列表,可以作出反应,第二个字符串是一个jQuery选择器,用于标识事件的目标(如果不是form
本身)。
参考文献:
on()
。