我知道这里有一些类似的帖子,但我找不到任何东西来解决我的问题。我是JS的新手,所以我尽量让它变得简单。
我有一个固定位置的div,我想把它的滚动位置返回到0(顶部) onMouseOut。下面是我的函数调用:
<div id="searchButton" onmouseout="scrollBack()">
下面是相关的JS:
function scrollBack() {
$("#searchButton").scrollTop(0);
}
正如我在其他几个线程中看到的那样,问题是在我真正离开div之前,onMouseOut函数(onMouseOut())就被触发了。
有谁能告诉我正确的方向吗?我想这可能与事件冒泡有关(滚动div中的其他元素,其中有很多),但这有点超出了我的理解范围。
提前谢谢你!
编辑:事实证明onMouseLeave工作得很完美。谢谢!
发布于 2014-01-24 16:44:13
onmouseleave
更加一致,但是...
我看到你在使用jQuery,那就去试试吧!
<div id="searchButton"> </div>
jQ:
$(function(){ // DOM is now ready
function scrollBack() {
$(this).scrollTop(0);
}
$("#searchButton").on('mouseleave', scrollBack);
});
发布于 2015-02-10 23:46:17
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
标签最近的地方响应。(Link在解释时更准确)。如果堆栈中只有一个onmouseleave,它将只在该元素/节点上响应。
https://stackoverflow.com/questions/21337752
复制相似问题