[英]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.