2011-08-23 63 views

回答

11

因爲不是所有的瀏覽器都支持事件捕獲,特別是IE。由於jQuery應該是跨瀏覽器兼容的,它不能提供事件捕獲(可能模擬事件捕獲,但如果它很容易,我相信他們會做到這一點)。

+0

http://censore.blogspot.in/2014/09/js-event-bubbling-vs-event-capturing.html – biplav

+7

恕我直言,jQuery的2.X應該支持 –

+2

這一個非常不好的理由不支持某些東西。至少讓用戶有選擇的權力。我認爲事件namespacing的強大功能在jQuery中非常方便,而不是在本地JS中。 – vsync

5

這實際上是jQuery 2中的一個令人滿意的功能,但核心團隊非常確信,允許捕獲事件在整個jQuery事件系統中具有相同的地位將會帶來很多問題。原始票可以在這裏找到[1]。他們甚至在幾次討論後關閉了機票。

此外,IE8和Opera 7.0之前的瀏覽器不支持事件捕獲。由於jQuery的主要目標是提供跨瀏覽器支持,因此不支持事件捕獲。

在一個更簡單的說明中,似乎jQuery更專注於利用基於事件冒泡到DOM樹的事件委託。

[1] http://bugs.jquery.com/ticket/14953

+1

jquery 2.0的重點在於放棄對舊版瀏覽器的支持,因此不支持事件捕獲的舊版瀏覽器至少不應該成爲jquery 2的攔截器。 – Jens