gpt4 book ai didi

javascript - jQuery on() 事件委托(delegate)

转载 作者:行者123 更新时间:2023-11-30 10:34:51 26 4
gpt4 key购买 nike

以下是否在 <div> 之间进行了委托(delegate)?标签?即:一个或两个事件处理程序?我需要捕获 data-id在 event.delegateTarget 上。这在附加到每个 <div> 时很简单标签,但我可能有 20 个左右。无论如何猜测都没什么大不了的,但我希望有一个更好的理解。

jQuery 文档声明如果我提供 selector对于 on方法,它是委托(delegate)的,但我的场景似乎与我附加到多个元素的情况略有不同。有没有一种方法可以使用我的浏览器调试器工具查看生成的事件处理程序?

如果我将处理程序附加到 document ,有什么简单的方法可以捕获包含 div 的内容吗? ?我的文档比示例复杂得多,我不能简单地依赖 div 的事实。和相关data-idinput 的直接父级元素。

$(".target").on("change", "input", function (event) {
...
});

<div class="target" data-id="123">
<input type="checkbox" name="alpha" value="1" />
<input type="checkbox" name="alpha" value="2" />
</div>

<div class="target" data-id="789">
<input type="checkbox" name="beta" value="3" />
<input type="checkbox" name="beta" value="4" />
</div>

最佳答案

这是一个处理函数,将在 <input> 上为“更改”事件调用。两个<div>中的任何一个元素元素。

真正的事件处理程序是一个 jQuery 内部事物,它检查事件目标并适本地分派(dispatch)。

如果附加到 <body> ,你会这样做:

$('body').on('change', '.target input', function() { ... });

来自处理程序,this将是 <input>你可以使用 .closest('.target')找到容器。

关于javascript - jQuery on() 事件委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14655738/

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