在我的重ajax代碼中,我總是綁定「點擊」身體標記&根據$(e.target)
&使用$.fn.hasClass()
。但是,當我點擊一個內部有</span>
標籤的錨時,我的$(e.target)
等於此節點,而不是我希望的父錨。jQuery 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()
沒有解決我的問題,因爲它仍返回跨度爲目標。而且我在找的速度(基於原子觸摸設備上運行)&現場似乎是方法要慢(兩次):http://jsperf.com/bind-vs-click/3
事實上,作爲@Guffa指出,使用$.fn.live()
解決了跨度起泡問題因爲我不再需要event.target
。我猜這裏沒有其他「正確的」答案(在容器上使用綁定)。
我需要最低的開銷(在基於原子的觸摸設備上運行)並且實際顯示速度較慢(兩次):http://jsperf.com/bind-vs-click/3 – Olivier 2010-12-21 16:47:12