2012-10-10 28 views
2

可能重複:
jQuery: more than one handler for same eventjQuery:分配多個事件處理程序是非法還是不好的做法?

我使用的是創建兩個按鈕,一個jQuery插件滑塊。這些按鈕具有插件附加的點擊事件,因爲它們用於控制滑塊。我創建了自己的mouseover \ mouseout事件,獨立於插件(與網頁內聯)來處理動畫。我想創建一個用於點擊(以便按鈕更改顏色)。我會創建另一個點擊事件處理程序覆蓋或破壞插件的功能嗎?這是不好的做法,有沒有更好的方法?

+4

http://stackoverflow.com/questions/1491718/jquery-more-than-one-handler-for-same-event –

+5

這是在39個州 –

+0

笑取締有給予好評。 – user974896

回答

3

有兩個事件是沒有問題的。只要您喜歡,您可以將任意數量的事件分配給對象。

這是合乎邏輯的,因爲您很可能希望根據觸發的事件觸發不同的功能。每個jQuery插件的99%在處理多個事件的對象時都沒有問題。如果您有任何問題,請嘗試並提出問題。

說不好是內聯JS的唯一的事;)

1

不是真的,但如果你可以在一個處理程序中處理所有功能,那你爲什麼不呢?

3

它不會打破已經綁定任何處理。 jQuery綁定的方式是使用事件註冊模型,因此它支持多個事件處理程序。

這是與傳統方法相比使用addEventListeners/attachEvent的優勢之一。

更多閱讀:https://stackoverflow.com/a/12627478/297641

1

你應該沒有問題。只需使用jQuery的API添加您自己的事件處理程序,即可設置。來自jQuery文檔.on()

從jQuery 1.4開始,相同的事件處理程序可以多次綁定到一個元素。

$('#myButton').on('click', myHandler) 
+0

ide使用常規$(「#myButton」)。click(function(e){}); – user974896

0

在某些情況下,我會說這是不好的做法。在單個元素上創建多個事件處理程序幾乎總是可以避免的。如果你足夠舒適,你可以隨時打開插件的源代碼(如果它不是縮小版本)並修改事件處理程序以包含修改。

如果你這樣做不舒服,那麼我會說繼續你在做什麼。只要知道有更好的選擇。

這假設你添加了說另一個點擊事件綁定,當插件已經有一個。

-Mike

+0

雅這就是我的意思。該插件被混淆。 – user974896

相關問題