我知道这里有一些类似的线程,但我找不到任何可以解决我的问题的东西。我是JS的新手,所以我想尽可能简单。
我有一个固定的位置div,其滚动位置我想返回到0(顶部)onMouseOut。这是我的函数调用:
<div id="searchButton" onmouseout="scrollBack()">
这是相关的JS:
function scrollBack() {
$("#searchButton").scrollTop(0);
}
正如我在其他几个主题中所看到的那样,问题是onMouseOut函数(scrollback())在我实际离开div之前触发。
有人能指出我正确的方向吗?我想它可能与事件冒泡有关(滚动div中的其他元素,其中有很多),但这有点超出我的理解范围。
提前谢谢!
编辑:结果onMouseLeave工作得很好。谢谢!
答案 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,它将只响应该元素/节点。