我的应用程序已动态添加了下拉列表。用户可以根据需要添加任意数量。
传统上,我使用jQuery的live()
方法来检测何时change()
编辑以下Dropdowns之一:
$('select[name^="income_type_"]').live('change', function() {
alert($(this).val());
});
从jQuery 1.7开始,我已经将其更新为:
$('select[name^="income_type_"]').on('change', function() {
alert($(this).val());
});
查看文档,这应该是完全有效的(对吗?)-但是事件处理程序永远不会触发。当然,我已经确认jQuery 1.7已加载并正在运行,等等。错误日志中没有错误。
我究竟做错了什么?谢谢!
live
确实正在使用on
,因此可能直到现在live
将其删除之前才需要重新编写旧代码,我相信这是1.9。摘自1.7.1来源:live: function( types, data, fn ) {jQuery( this.context ).on( types, this.selector, data, fn ); return this;}
因此,如果不升级到不再使用的版本,live
则可能不需要立即为旧代码进行更新。对于新代码on()
,建议您改用。我只是认为这些信息可能会在某个阶段帮助其他人。