【问题标题】:Can any .livequery() code be written with an equivalent .delegate() code in jQuery?任何 .livequery() 代码都可以用 jQuery 中的等效 .delegate() 代码编写吗?
【发布时间】:2017-09-14 02:08:59
【问题描述】:

我在阅读http://api.jquery.com/delegate/ 时了解到任何.delegate() 代码都可以用等效的.on() 代码编写。该链接提供了此示例:

例如下面的 .delegate() 代码:

$( "table" ).delegate( "td", "click", function() {
    $( this ).toggleClass( "chosen" );
});

等价于使用.on()编写的以下代码:

$( "table" ).on( "click", "td", function() {
    $( this ).toggleClass( "chosen" );
});

我正在使用带有 jQ​​uery 1.3.1 的旧系统。它广泛使用.livequery()。我想摆脱这个 Live Query 插件,但仍然继续使用 jQuery 1.3.1 一段时间。请不要给我一个答案,建议我只是升级到最新版本的 jQuery 或改用 .on(),因为 .on() 在 jQuery 1.3.1 中不可用。现在,我必须继续使用 jQuery 1.3.1,但将所有出现的 .livequery() 替换为使用 .delegate() 的等效项。那可能吗?我想知道您是否可以使用.livequery() 执行某些操作,而使用.delegate() 等效项则无法完成。谢谢。

【问题讨论】:

  • 应该是可以的。我认为您需要尝试在代码中转换 .livequery() 的一些实际实例,以便了解转换的复杂性。
  • delegate() 方法是在 1.4.2 版本中添加的,所以不,如果您受限于 1.3.1,则无法使用它。
  • 也就是说,nnnn的评论给整个企业泼了一盆冷水。
  • 抱歉,我不熟悉 Live Query 插件。一般来说,如果我需要在 1.4.2 之前的 jQuery 版本中使用委托行为,我只会使用 .live(),或者在你的情况下,我现在会坚持使用该插件,然后再切换到 .delegate().on() 如果您最终能够升级到 jQuery 1.4.2+ 或 1.7+。
  • 是的,使用 POJS,但是如果你把注意力集中在两种不同的冒泡模型上,你会发疯的。

标签: jquery livequery jquery-1.3


【解决方案1】:

我保留 Live Query 是因为我的主要目标是升级 jQuery,而不是摆脱 Live Query。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    相关资源
    最近更新 更多