簡體   English   中英

檢查此元素或此元素是否與jQuery一起盤旋

[英]check if this element OR this element is hovered with jQuery

我的DOM中有兩個獨立的元素,當任何一個懸停時需要更改。 鏈接懸停時,圖像src需要更改(簡單)並且鏈接顏色需要更改。 當圖像懸停時,需要發生相同的效果(圖像src更改和鏈接顏色更改)

這實際上很容易做到,但我覺得有一種更簡單的方法來做我接受的方法。 目前,我正在瀏覽8個元素中的每一個,並測試它們是否單獨懸停。 這很好用,但這里有更多的jQuery,而不是我應該有的。

我嘗試將屬性onmouseover添加到兩個元素並觸發相同的函數,但由於某種原因,該函數沒有觸發。

有沒有辦法測試是否有任何一個元素懸停並觸發一個函數,如果有的話? 像這樣的東西:

if($(#elm1).hover() || $('#elm2').hover()) {
    //effect here
}

要么

if($('#elm1').is(':hover') || $('#elm2').is(':hover')) {
    //effect here
}

我嘗試了上面的示例代碼,但沒有得到任何結果。 有沒有辦法做到這一點,還是我堅持檢查每個單獨的元素?

它可以工作,你只是在頁面加載時運行它,而不是在鼠標移動時

$(document).mousemove(function() {    
    if($('#elm1').is(':hover') || $('#elm2').is(':hover')) {
        // Do stuff
    }
    else {
        // Revert do stuff or do other stuff
    }
});

這里的例子

但是,正如其他人所說,jQuery已經知道了hover狀態,所以這樣做是不必要的。 實際上,您應該使用相同的選擇器將函數應用於它

$('#idOne, #idTwo').hover(function() { /* Do stuff */ });

我會在鼠標懸停時注冊事件,每當事件發生時觸發一個函數

$("#elm1, #elm2").on("mouseover", function () {
    // effect here
});

為什么不簡單地將處理程序添加到這兩個元素:

$('#elm1, #elm2').hover(function(){
     // ... do stuff here ...
});

應該管用 。

暫無
暫無

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

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