gpt4 book ai didi

jQuery:使用委托(delegate)时链接 on()

转载 作者:行者123 更新时间:2023-12-03 21:30:40 25 4
gpt4 key购买 nike

过去,我曾经将调用链接到 live() 并取得了巨大成功,例如:

$(".something")
.live("click", function(e) { ... })
.live("change", function(e) { ... })
.live("submit", function(e) { ... });

如今,live()bind()delegate() 已被 Shiny 的新 on( )

我尝试简单地将 live() 替换为 on() ,这看起来很明显:

$(".something")
.on("click", function(e) { ... })
.on("change", function(e) { ... })
.on("submit", function(e) { ... });

但是,当您考虑 on() 的工作原理时,几乎同样明显的是,这不会起作用。这来自http://api.jquery.com/on/ :

"Event handlers are bound only to the currently selected elements; they must exist on the page at the time your code makes the call to .on()."

根据 jQuery 文档,我需要绑定(bind)到 document 并委托(delegate)给 .something 来处理实时事件。不幸的是,这意味着如果我想用 on() 复制上面的内容,我最终会重复我的委托(delegate)选择器 (.document):

$(document)
.on("click", ".something", function(e) { ... })
.on("change", ".something", function(e) { ... })
.on("submit", ".something", function(e) { ... });

这按预期工作,但我真的很希望能够像使用 live() 那样更清晰地链接。我错过了什么吗?

最佳答案

我相信你能做到:

$(document).on({
"click" : function(e) { ... },
"change" : function(e) { ... },
"submit" : function(e) { ... }
}, ".something");

也就是说,使用“事件映射”语法来指定事件及其处理程序,然后指定用于委托(delegate)样式行为的选择器。

关于jQuery:使用委托(delegate)时链接 on(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11856795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com