onMouseOut射击没有鼠标离开div

时间:2014-01-24 16:34:52

标签: javascript jquery html onmouseout

我知道这里有一些类似的线程,但我找不到任何可以解决我的问题的东西。我是JS的新手,所以我想尽可能简单。

我有一个固定的位置div,其滚动位置我想返回到0(顶部)onMouseOut。这是我的函数调用:

<div id="searchButton" onmouseout="scrollBack()">

这是相关的JS:

function scrollBack() {
    $("#searchButton").scrollTop(0);
}

正如我在其他几个主题中所看到的那样,问题是onMouseOut函数(scrollback())在我实际离开div之前触发。

有人能指出我正确的方向吗?我想它可能与事件冒泡有关(滚动div中的其他元素,其中有很多),但这有点超出我的理解范围。

提前谢谢!

编辑:结果onMouseLeave工作得很好。谢谢!

2 个答案:

答案 0 :(得分:1)

onmouseleave更加一致,但......

我看到你使用jQuery,所以去吧!的 LIVE DEMO

<div id="searchButton"> </div>

JQ:

$(function(){ // DOM is now ready

   function scrollBack() {
      $(this).scrollTop(0);
   } 

   $("#searchButton").on('mouseleave', scrollBack);

});

答案 1 :(得分:0)

onmouseleave:https://developer.mozilla.org/en-US/docs/Web/Events/mouseleave

onmouseout也会触发子元素,即:

<div id="searchbutton" onmouseleave="scrollBack();"><span>t</span><span>something longer</span></div>

每当鼠标离开<span>元素时,它也会触发。 onmouseleave只会回复最接近html标记的内容。 (链接在解释时更准确)。如果在该堆栈中只有一个onmouseleave,它将只响应该元素/节点。