新版本的jquery问题

时间:2016-05-24 21:00:52

标签: 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工具没有任何错误。

该脚本的目标是在单击图标时删除一行。应显示一个对话框,邀请用户确认/取消。

2 个答案:

答案 0 :(得分:1)

$('delete').on('click', 'a', function(){})

等同于

$('a.delete').live('click',function(){})`

这些做了两件事。

您的.live()实际上正在将事件附加到document,然后检查实际点击的元素是否为子<a class="delete">标记。

在您的.on()示例中,您尝试将事件绑定到<delete>元素,并检查触发的实际元素是否为子{{1 }}。这显然不是你想要的。

如果您的元素被动态添加到页面中,那么您可以尝试:

<a>

这与您的$(document).on('click', 'a.delete', function(){}); 相同。

答案 1 :(得分:0)

为什么要更改选择器?

$('a.delete').live('click',function(){})

应更改为:

$('a.delete').on('click',function(){})

$('a.delete').click(function(){})