我正在使用this sample但我想使用最新版本的 Jquery。 我注意到使用 Jquery-ui 1.9.0 或更高版本时,该对话框不再显示。它与演示中提供的原始版本(1.0.8)运行良好。 如果我使用 Jquery 2.2.1(Jquery 不是 Jquery -ui)而不是 1.4.2,也会发生同样的事情
我尝试过的唯一更改是将 $('a.delete').live('click',function(){
替换为 $('delete').on( 'click', 'a', function(){
以补救已弃用的 .live
即使查看了 Jquery 和 Jquery 更改日志,我也无法弄清楚还需要更改哪些内容。 Jquery-migrate工具没有给出任何错误。
该脚本的目标是在单击图标时删除一行。应显示一个对话框邀请用户确认/取消。
最佳答案
$('delete').on('click', 'a', function(){})
不等于
$('a.delete').live('click',function(){})`
它们做了两种不同的事情。
您的.live()
实际上是将一个事件附加到 document
然后检查实际单击的元素是否是子元素 <a class="delete">
标签。
在您的 .on()
中例如,您尝试将事件绑定(bind)到 <delete>
元素,并检查触发的实际元素是否为子元素 <a>
。这显然不是你想要的。
如果您的元素是动态添加到页面的,那么您可以尝试:
$(document).on('click', 'a.delete', function(){});
这将与您的 .live()
相同.
关于javascript - jquery新版本的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37423806/