javascript - jquery新版本的问题

标签 javascript jquery

我正在使用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/

相关文章:

javascript - 当 "use strict"时如何引用对象的实例;已宣布?

C# 从代码隐藏 (Sitecore) 在页脚中添加外部脚本

javascript - 如何在列数为 2 的弹出联系表单中设置有序字段

javascript - 更改 'option' 标记的值后的 Ajax 调用

javascript - 在代码隐藏中调用 Web 方法

javascript - 将表单数据转换为 JSON 字符串

javascript - 火狐浏览器中的事件 "e is undefined"

javascript - 子菜单位置问题

internet-explorer - 在 Internet Explorer 中第二次调用后 jQuery ajax 不工作

jquery - 如何使用 webpack 在 Node.js 应用程序中包含 jquery?