簡體   English   中英

鼠標事件的多種功能jQuery

[英]Multiple functions for mouse events jquery

我正在開發jQuery插件。 為了分開我的邏輯,我做這樣的事情:

$element.on({
    mouseenter: function(){
      //do something special
    }, mouseleave: function(){
      //do something else special
    }
});
//more stuffs

然后在此之上我再次使用其他功能主體執行此操作

$element.on({
    mouseenter: function(){
      //do something not special
    }, mouseleave: function(){
      //do something else not special
    }
});

jQuery如何處理呢? 鼠標事件函數的第二個聲明會否覆蓋第一個? 有時我看到兩種方法都有效,但有時卻不行。

鼠標事件函數的第二個聲明會否覆蓋第一個?

沒有。

jQuery如何處理呢?

它按照它們附加的順序執行事件處理程序。 文檔 (大約40%):

綁定到元素的事件處理程序的調用順序與其綁定的順序相同。

因此,例如,如果您有:

var div = $("#someDiv");
div.on("click", function() { console.log("one"); });
div.on("click", function() { console.log("two"); });
div.on("click", function() { console.log("three"); });

...然后單擊div將給您

one
two
three

...在控制台中。

請注意,如何找到要附加處理程序的元素並不重要。 假設您在頁面上只有一個div ,它的id "someDiv" ,並且它是body的第一個子"someDiv" (只是為了使選擇器易於操作)。 如果你有:

$("#someDiv").on("click", function() { console.log("one"); });
$(document.body).children().first().on("click", function() { console.log("two"); });
$("div").on("click", function() { console.log("three"); });

然后單擊div,您將獲得

one
two
three

...在控制台中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM