可能重複:
jQuery: more than one handler for same eventjQuery:分配多個事件處理程序是非法還是不好的做法?
我使用的是創建兩個按鈕,一個jQuery插件滑塊。這些按鈕具有插件附加的點擊事件,因爲它們用於控制滑塊。我創建了自己的mouseover \ mouseout事件,獨立於插件(與網頁內聯)來處理動畫。我想創建一個用於點擊(以便按鈕更改顏色)。我會創建另一個點擊事件處理程序覆蓋或破壞插件的功能嗎?這是不好的做法,有沒有更好的方法?
可能重複:
jQuery: more than one handler for same eventjQuery:分配多個事件處理程序是非法還是不好的做法?
我使用的是創建兩個按鈕,一個jQuery插件滑塊。這些按鈕具有插件附加的點擊事件,因爲它們用於控制滑塊。我創建了自己的mouseover \ mouseout事件,獨立於插件(與網頁內聯)來處理動畫。我想創建一個用於點擊(以便按鈕更改顏色)。我會創建另一個點擊事件處理程序覆蓋或破壞插件的功能嗎?這是不好的做法,有沒有更好的方法?
有兩個事件是沒有問題的。只要您喜歡,您可以將任意數量的事件分配給對象。
這是合乎邏輯的,因爲您很可能希望根據觸發的事件觸發不同的功能。每個jQuery插件的99%在處理多個事件的對象時都沒有問題。如果您有任何問題,請嘗試並提出問題。
說不好是內聯JS的唯一的事;)
不是真的,但如果你可以在一個處理程序中處理所有功能,那你爲什麼不呢?
它不會打破已經綁定任何處理。 jQuery綁定的方式是使用事件註冊模型,因此它支持多個事件處理程序。
這是與傳統方法相比使用addEventListeners/attachEvent
的優勢之一。
你應該沒有問題。只需使用jQuery的API添加您自己的事件處理程序,即可設置。來自jQuery文檔.on()
:
從jQuery 1.4開始,相同的事件處理程序可以多次綁定到一個元素。
$('#myButton').on('click', myHandler)
ide使用常規$(「#myButton」)。click(function(e){}); – user974896
在某些情況下,我會說這是不好的做法。在單個元素上創建多個事件處理程序幾乎總是可以避免的。如果你足夠舒適,你可以隨時打開插件的源代碼(如果它不是縮小版本)並修改事件處理程序以包含修改。
如果你這樣做不舒服,那麼我會說繼續你在做什麼。只要知道有更好的選擇。
這假設你添加了說另一個點擊事件綁定,當插件已經有一個。
-Mike
雅這就是我的意思。該插件被混淆。 – user974896
http://stackoverflow.com/questions/1491718/jquery-more-than-one-handler-for-same-event –
這是在39個州 –
笑取締有給予好評。 – user974896