将事件委派给整个对象

时间:2017-02-09 11:48:22

标签: javascript jquery html event-delegation

我有一个jQuery插件(我写过),它有一个匹配可选子选择器的选项。即:如果我有这个标记:

<div class="header">
  <a id="item-name">Blah</a>
  <span class="some-data">Numbers and Stuff</a>
  <span class="other-data">Bananas</a>
</div>

Orignally,我使​​用以下命令将click事件委托给整个.header:

headerDiv.on('click', function () {

但是后来需要将点击限制为仅锚点,所以为了保持兼容性,我使用了替代语法:

headerDiv.on('click',headerSelector, function () {

其中headerSelector默认为*,但我可以通过a将其限制为锚点。我现在使用的默认*选择器似乎有问题,有时候点击未注册。在使用委托事件语法时,是否有正确的方法来匹配元素本身?

2 个答案:

答案 0 :(得分:0)

默认情况下,您可以

headerSelector = headerDiv

我认为它等于headerDiv.on('click', function () {

答案 1 :(得分:0)

使用document作为父元素,使用headerDiv然后使用*。如果给孩子替换*。

$(document).on('click', "headerDiv *", function(){})