【问题标题】:How to verify that the mouse over an element?如何验证鼠标悬停在一个元素上?
【发布时间】:2009-06-02 10:20:20
【问题描述】:

你知道如何检查鼠标是否在一个元素上吗?

像这样的东西?

setTimeout(function() {
    if($(this).mouseover()) {  // this not work
        return false;   
    } else {
        $(this).hide();
    }
}, 1000);

谢谢。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    你可以这样使用:

    var isMouseOver = false;
    
    $(myitem).hover(function() {isMouseOver = true;}, 
                    function() {isMouseOver = false;});
    

    【讨论】:

      【解决方案2】:

      我假设您在“this”代表单个元素的闭包中操作:

      var mouseovered = false,
          myElem = this;
      
      $(myElem)
          .mouseover(function(){
              mouseovered = true;
          })
          .mouseout(function(){
              mouseovered = false;
          });
      
      setTimeout(function() {
         if(mouseovered) {  
              return false;   
          } else {
              $(myElem).hide();
          }
      }, 1000);
      

      请注意,我使用“myElem”而不是“this”关键字,在 setTimeout 回调的上下文中,它是对 Window 对象的引用 - 显然不是您想要的。

      【讨论】:

        【解决方案3】:

        使用相关元素上的 onmouseover 事件调用函数以隐藏相关元素(因为这似乎是您想要做的)。

        【讨论】:

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