2010-08-13 90 views
3

我正在尋找模糊/焦點事件上的事件委託,類似於quirksmode上建議的方式。正如TFA所解釋的,模糊和焦點事件不會冒泡,所以你不能在冒泡階段使用事件委託,但你可以在捕獲階段抓取它們(man,javascript事件很奇怪)。在事件捕獲階段綁定jQuery處理程序(不是事件冒泡)

無論如何,據我所知,jQuery事件都適用於冒泡階段,或者至少這是我一直使用它們的地方。我在jQuery文檔中看不到任何有關這種或那種方式的信息,並且默認情況下使用類似$('#foo')的。blur(blurHandler)似乎無法捕獲它。

我寧願堅持使用jQuery的一致性;有沒有辦法做到這一點?

回答

3

如果您要讓容器在<input>獲得焦點或模糊時觸發處理程序,請嘗試使用.focusin().focusout()

從文檔:

時,或在其內部的任何元素,獲得焦點的focusIn事件被髮送給一個元素。這與焦點事件有所不同,因爲它支持檢測父元素上的焦點事件。

當焦點事件或焦點內的任何元素失去焦點時,焦點事件被髮送到元素。這與blur事件不同之處在於它支持檢測父元素的焦點丟失(換句話說,它支持事件冒泡)。

+0

那麼,這很容易:)不知道我錯過了,因爲鏈接明確提到了javascript focusin/focusout事件。幸運的是,我正在升級到jQuery 1.4。 – 2010-08-13 15:21:13