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

标签 javascript jquery delegates

当通过 $.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 Properties
Object
  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__: Object
undefined
  No Properties

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

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

相关文章:

swift - TableView 单元格中的委托(delegate)错误

javascript - 组织 React 组件

javascript - 如何使用套接字将按钮的背景颜色数据发送到服务器

动态元素的javascript验证

c# - 窗口之间的交互

c# - 返回值未显示

javascript - 动画 Bootstrap 进度条

javascript - 如果对象键存在,则向其中添加另一个对象

javascript - 由于菜单原因,链接无法点击

jQuery 移动 : login link goes to last cached page