我使用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的事件处理程序捕获?
答案 0 :(得分:0)
找到答案,bootgrid插件正在为每次点击添加一个event.stopPropagation(),这会阻止它冒泡到委托所在的主体。
不得不在每个元素上使用点击处理程序。