使用jQuery附加选择,委托/ on事件不起作用

我想制作一个事件监听器,因为.quantity选择更改。

由于live()被折旧,我尝试了两者:

 $('.variant').delegate('.quantity', 'change', function() 

http://jsfiddle.net/PdA4W/

 $('.variant').on('change', '.quantity', function() 

http://jsfiddle.net/PdA4W/2/

问题是,当你单击Add(它已经克隆并附加了一个变量div)时,事件监听器不会监听select里面的变化。 没有警报。

仅适用于第一个选择

这可能是什么问题?

试试这个:

 $(document).on('change', '.variant', function(){ alert(1); }); 

DOM并不是真的意识到你动态添加了元素。 使用上面的代码,它几乎忽略了这一点,并将事件绑定到选择器指示的所有未来元素。 http://jsfiddle.net/hescano/PdA4W/3/

来自JQuery文档: http : //api.jquery.com/on/

事件处理程序仅绑定到当前选定的元素; 它们必须存在于您的代码调用 .on()时页面上。 要确保元素存在且可以选择,请在文档就绪处理程序内对页面上HTML标记中的元素执行事件绑定。 如果将新HTML注入页面,请在将新HTML放入页面后选择元素并附加事件处理程序。 或者,使用委托事件来附加事件处理程序,如下所述。

因此,您可以在每次单击链接后重新绑定事件,或者按照上面的代码执行此操作。