【问题标题】:How do I create an if () mouse is over an element in Jquery?如何在 Jquery 中创建 if () 鼠标悬停在元素上?
【发布时间】:2011-01-28 16:40:33
【问题描述】:

我有一些 hover() JS 代码:

$( '.leftMenuProductWrapper').hover (
            function () {



            },
            function () {


    });

在第二个函数中,我需要类似:

If ($("#leftMenuWrapper2").hasMouseover){
do this
}else{
do that};

我找不到任何有关如何操作的文档。

编辑:

这似乎是一个解决方案:

$('#leftMenuWrapper2').mouseenter(function(){
    mouseover = true;
}).mouseleave(function(){
    mouseover = false;
});

然后在后面的代码中引用它:

if(mouseover == false){
                doSomething
                };

【问题讨论】:

  • 你能澄清一下吗?当有人将鼠标移出$('.leftMenuProductWrapper') 并移入$('#leftMenuWrapper2") 时,您是否希望执行特定操作?
  • 另外,您能否提供一个用于此代码的 DOM 的简单示例?
  • @Jared,这正是我在回答中得到的解决方案。

标签: jquery mouseover


【解决方案1】:

我不完全确定你在做什么,但看起来你从错误的角度攻击它。

我假设您在 .leftMenuProductWrapper 中有多个元素,其中之一是 #leftMenuWrapper2... 我假设您关心的元素是 <div>s(但您可以编辑代码以适应他们不是)。试试这样的:

$('.leftMenuProductWrapper>div').hover(function(ev) {
    if ($(this).id == 'leftMenuWrapper2') {
        // do something with this one
    } else {
        // otherwise, do something else
    }
});

【讨论】:

    【解决方案2】:

    在非常高的层次上,你想要的是:

    • 保持布尔值。
    • 当鼠标触发 MouseOver 事件时,将布尔值设置为 true。
    • 当鼠标触发 MouseOut 事件时,将布尔值设置为 false。

    您只需返回布尔值即可获得hasMouseOver 值。

    【讨论】:

      猜你喜欢
      • 2011-06-02
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2017-04-19
      相关资源
      最近更新 更多