无论我使用什么方法检测页面滚动,事件都会被触发两次。请查看我尝试的不同方法的代码。
<body onmousewheel="alert('Why are you alerting twice?')">
或者<script src="js/jquery-1.8.3.min.js"></script>
<script>
$(window).scroll(function(){
alert("Why are you alerting twice?");
});
</script>
或者window.onscroll = please_scroll;
function please_scroll() {
alert("Why are you alerting twice?");
}
我甚至尝试使用$.debounce。
如果有用的话,我将解释一下我正在尝试做什么: 当用户向上或向下滚动滚轮时,页面将动画滚动到下一个全宽内容div。 我已经编写了在单击菜单时成功执行此操作的代码,但我还希望它发生在用户滚动时,从而自动帮助他们滚动到页面的每个部分。这是我目前用于滚动的函数:
function scrollTo(id){
// Scroll
$('html,body').animate({scrollTop: $("#"+id).offset().top - 110},'slow',function(){
animation_active = "false";
});
}
window.onscroll = please_scroll;
其次,你不应该使用alert
来调试事件。 - A. Wolff