表格单元格内的元素会中断事件委托

时间:2014-12-12 10:15:01

标签: javascript jquery html javascript-events event-delegation

我使用bootgrid http://www.jquery-bootgrid.com/ jQuery插件来制作精美的桌面用品。

对于其中一个列,我在其中放置了一个跨度,该跨度由身体上设置的事件委托拾取,因此我可以在单击时显示一个菜单。

但是,当跨度在td内时,事件委托不会被调用,但是如果我将它在chrome elements inspector中拖动到td之外,则在单击时将调用该委托。

所以

<td class="text-left">
    <span class="js-info-popup-open-on-click" data-id="7075" data-type="Resource">
        dataHubAlpha
    </span>
</td>

不会在选择器.js-info-popup-open-on-click上触发事件委托设置,但

<span class="js-info-popup-open-on-click" data-id="7075" data-type="Resource">
    dataHubAlpha
</span>
<td class="text-left"></td>

触发事件正常。 据我所知,那里没有像指针事件那样:没有;在td元素上,由于跨度是孩子,它不应被td的事件处理程序捕获?

1 个答案:

答案 0 :(得分:0)

找到答案,bootgrid插件正在为每次点击添加一个event.stopPropagation(),这会阻止它冒泡到委托所在的主体。

不得不在每个元素上使用点击处理程序。