Javascript 检查此元素或此元素是否与jQuery一起悬停

Javascript 检查此元素或此元素是否与jQuery一起悬停,javascript,jquery,hover,conditional,mouseover,Javascript,Jquery,Hover,Conditional,Mouseover,我的DOM中有两个单独的元素,当其中一个悬停时需要更改。当链接悬停时,图像src需要轻松更改,链接颜色需要更改。当图像悬停时,同样的效果需要发生图像src更改和链接颜色更改 这其实很容易做到,但我觉得有一种方法比我现在采取的方法简单得多。目前,我正在检查8个元素中的每一个,并测试它们是否单独悬停。这很好,但这里的jQuery比我认为应该的多得多 我尝试将onmouseover属性添加到这两个元素中并触发同一个函数,但由于某种原因,该函数没有触发 是否有一种方法可以测试是否有任何一个元素处于悬停状

我的DOM中有两个单独的元素,当其中一个悬停时需要更改。当链接悬停时,图像src需要轻松更改,链接颜色需要更改。当图像悬停时,同样的效果需要发生图像src更改和链接颜色更改

这其实很容易做到,但我觉得有一种方法比我现在采取的方法简单得多。目前,我正在检查8个元素中的每一个,并测试它们是否单独悬停。这很好,但这里的jQuery比我认为应该的多得多

我尝试将onmouseover属性添加到这两个元素中并触发同一个函数,但由于某种原因,该函数没有触发

是否有一种方法可以测试是否有任何一个元素处于悬停状态,并在其中任何一个元素处于悬停状态时触发函数?大概是这样的:

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


我尝试了上面的示例代码,但没有得到任何结果。有没有办法做到这一点,还是我一直在检查每个元素?

为什么不简单地将处理程序添加到两个元素中,如下所示:

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

应该有用

它可以工作,您只是在页面加载时运行,而不是在鼠标移动时运行

$(document).mousemove(function() {    
    if($('#elm1').is(':hover') || $('#elm2').is(':hover')) {
        // Do stuff
    }
    else {
        // Revert do stuff or do other stuff
    }
});
但是,正如其他人所说,jQuery已经知道悬停状态,所以这样做是不必要的。实际上,您应该使用相同的选择器将函数应用于它

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

我会在鼠标上方注册事件,每当事件发生时就会触发一个函数

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

var isHovered=$'elem'.is:悬停;要返回boolean,为什么不在执行hover和check时添加一个类似hovered的类。hovered:因为我想jQuery已经存储了该状态,将其加倍不会有任何好处var isHovered这件事不会起作用,因为我仍然需要用它分别检查8个不同的元素。我试图在同一个函数中检查链接和图像。哦,糟了。这正是我所需要的。我不知道为什么我自己没有想到这一点。谢谢当我在每个mousemove事件上选择元素时,我会接受答案,但不是很有效,您应该先选择它们并使用变量。你也可以听听mouseenter和mouseleave对那个元素的看法。@Neatcode同意了!这是我第一次学习编程时的一篇老文章。另外,第二种方法是更好的方法
$("#elm1, #elm2").on("mouseover", function () {
    // effect here
});