JQuery替换live::`delegate`或`on`
根据jQueryAPI描述:live在最新版本中被完全删除。但它在我们的项目中被广泛使用。例如:JQuery替换live::`delegate`或`on`,jquery,jquery-on,jquery-delegate,Jquery,Jquery On,Jquery Delegate,根据jQueryAPI描述:live在最新版本中被完全删除。但它在我们的项目中被广泛使用。例如: $('div.collapsed').live('mouseover', function () { TBD.GENERAL.showLoginOther(this); }); $(".info_bar .filter a, .pagination a").live("click", function () { TBD.DHTML.shadeWithLoading($(t
$('div.collapsed').live('mouseover', function () {
TBD.GENERAL.showLoginOther(this);
});
$(".info_bar .filter a, .pagination a").live("click", function () {
TBD.DHTML.shadeWithLoading($(this).data('container-id'));
$.getScript(this.href);
return false;
});
$("form[loading-effect]").live('ajax:before', function () {
$(this).find('.button_panels, .loading_panels').toggle();
});
.........
等等
现在,如果我想使用最新的jquery,那么正确的live替代方案是什么?委派还是继续
期待一点解释。提前感谢因为.live()
已被弃用,您最好使用.on()
像这样
$('div.collapsed').on('mouseover', function () {
或者可以像这样使用
$(document).on('mouseover','div.collapsed', function () {
因为
不推荐使用.live()
,所以您最好使用.on()
这样的方法
$('div.collapsed').on('mouseover', function () {
或者可以像这样使用
$(document).on('mouseover','div.collapsed', function () {
因为
并且.on()方法提供附加事件处理程序所需的所有功能。为什么不
委托?或者为什么要打开
。解释将受到赞赏,它们都不等同于live()。Live将事件处理程序附加到文档级别:$(document).on('mouseover','div.collapsed',function(){…})
这两个都与您所说的相同,我认为您的编辑现在更好了;)+1但是您应该删除('mouseover',function(){…})上的$('div.collapsed')。这会带来混淆,因为它不是委托事件,在这里,它相当于.bind(),为什么不委托
?或者为什么要打开
。解释将受到赞赏,它们都不等同于live()。Live将事件处理程序附加到文档级别:$(document).on('mouseover','div.collapsed',function(){…})
这两个都与您所说的相同,我认为您的编辑现在更好了;)+1但是您应该删除$('div.collapsed')。在('mouseover',function(){…})上,这会带来混淆,因为它不是委托事件,在这里,它相当于.bind()。您可以在文档中找到最好的解释,我认为最简单的解决方案是不更新jQuery版本,除非您有其他方法,这样做的具体原因。我已经决定升级:)您可以在文档中找到最好的解释,我认为最简单的解决方案是不更新您的jQuery版本,除非您有这样做的其他特定原因。我已经决定升级:)