0

我有一个场景,我有对 dom 元素的实际 dom 引用,并希望将事件委托给该 dom 引用。

var domRef = $('.selector');
// I want something like this.
$(document).on('click', domRef, function() {

});

我知道在上面的代码中以这种方式使用它是没有意义的,但我有一个我自己想要这种功能的用例。我很感激可以为我提供解决方案,而无需争论遵循这种做法的原因。

4

2 回答 2

2

只需手动处理委托:

var domRef = $('.selector');

$(document).on('click', function(e) {
    // test if the click target is the same as your domRef
    if ($(e.target).is(domRef)) {
        // do special stuff for this node
    }
});
于 2013-01-02T20:59:30.107 回答
1

.on().

.on( events [, selector] [, data], handler(eventObject) )

selector:一个选择器字符串,用于过滤触发事件的选定元素的后代。如果选择器被null或省略,事件总是在到达被选元素时触发。

selector需要是一个字符串。如果不是,则将其视为参数data您可以通过查看的源代码来确认这一点。.on()

一种解决方法可能是:

var $domRef = $('.selector');
$(document).on('click', function(evt) {
  if($domRef.is(evt.target)) {
    ...
  }
});

即使,性能方面它不是那么好。

于 2013-01-02T21:02:08.877 回答