在我的重 ajax 代码中,我总是绑定“单击”主体标签并根据$(e.target)
& 使用$.fn.hasClass()
. 然而,当我点击一个内部有</span>
标签的锚点时,我$(e.target)
等于这个节点,而不是我想要的父锚点。
从现在开始,我使用了这个技巧(var $t = $(e.target);
):
/** bubbling **/
if($t.get(0).tagName !== "A" && $t.get(0).tagName !== "AREA") {
$t = $t.parent("a");
if(empty($t)) return true;
//else console.log("$t.bubble()", $t);
}
不知何故感觉不对……你有更好的实现吗?
$.fn.live()
不能解决我的问题,因为它仍然返回跨度作为目标。此外,我正在寻找速度(在基于原子的触摸设备上运行)& live 似乎更慢(两次):http: //jsperf.com/bind-vs-click/3
事实上,正如@Guffa 指出的那样,使用$.fn.live()
解决了跨度冒泡问题,因为我不再需要event.target
了。我想这里没有其他“正确”的答案(在容器上使用绑定)。