我希望制作一个事件监听器,以便.quantity
选择更改。
由于live()已折旧,我已尝试过两者:
$('.variant').delegate('.quantity', 'change', function()
$('.variant').on('change', '.quantity', function()
问题是,当你单击Add(它已经克隆并附加了一个变量div)时,事件监听器不会监听select里面的变化。没有警报。
仅适用于第一个选择
这可能是什么问题?
答案 0 :(得分:1)
请改为尝试:
$(document).on('change', '.variant', function(){
alert(1);
});
DOM并不是真的意识到你动态添加了元素。使用上面的代码,它几乎忽略了这一点,并将事件绑定到选择器指示的所有未来元素。 http://jsfiddle.net/hescano/PdA4W/3/
来自JQuery文档:http://api.jquery.com/on/
事件处理程序仅绑定到当前选定的元素;他们 在您的代码调用 .on()时页面上必须存在。 要确保元素存在且可以选择,请执行事件 绑定在文档就绪处理程序中的元素 页面上的HTML标记。如果将新HTML注入页面, 选择元素并在新HTML之后附加事件处理程序 放入页面。或者,使用委派事件来附加事件 处理程序,如下所述。
因此,您可以在每次单击链接后重新绑定事件,或者按照上面的代码执行此操作。