gpt4 book ai didi

javascript - 是否可以在元素上找到委托(delegate)事件?

转载 作者:行者123 更新时间:2023-12-02 19:38:46 26 4
gpt4 key购买 nike

当通过 $.on() 将处理程序放置到元素时,当您拥有的只是目标时,是否有任何方法可以找到委托(delegate)事件?

例如:

$('body').on('click', '#myLink', function(){ doStuff() });

...

$('#myLink').eventsFromOn();

我知道这看起来很奇怪,因为如果事件具有委托(delegate)事件数据,它就不再是真正的委托(delegate)事件,但值得一问...

谢谢!

最佳答案

如果您正在寻找处理程序数据,如果您足够努力,看起来您可以通过未记录的信息找到它。关于无证events数据对象,您有键 type , handler ,并且 - 重要的是 - selector 。所以如果你从 #mylink 开始,你可以看看events其祖先中每个级别的数据寻找与您所需事件的匹配,其中 $("#mylink").is(selector)是真的。

例如,使用以下 HTML:

<body>
<div id="mylink">click me</div>
</body>

如果我执行

$("body").on("click", "#mylink", function() {
// Anything
});

然后这样做:

var level = $("#mylink");
while (level[0]) {
console.dir(level.data('events'));
level = level.parent();
}

我明白了:

undefined  No PropertiesObject  click: Array[1]    0: Object        data: undefined        guid: 1        handler: function () {        namespace: ""        origType: "click"        quick: Array[4]        selector: "#mylink"        type: "click"        __proto__: Object        delegateCount: 1        length: 1        __proto__: Array[0]        __proto__: Objectundefined  No Properties

如您所见,click递上body在那里,有 selector匹配元素#mylink .

关于javascript - 是否可以在元素上找到委托(delegate)事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660055/

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