我有兩個事件:一個是onclick
,當我點擊菜單時滾動到某個div,另一個在onscroll
這個時候「突出顯示」菜單項滾動靠近div。當另一個執行jquery時,「不允許」執行一個事件
我的問題是:我怎麼能「禁止」一個envent的執行,而另一個正在執行。
這裏是我的代碼:
function goToByScroll(id){
var value = $(id).offset().top;
var scrl = value - 154;
$('html,body').animate({
scrollTop: scrl},
'slow');
}
//scroll menu control
$("#menu-home ul li a").click(function(e) {
e.preventDefault();
$("#menu-home ul li a").removeClass('menu-home-active');
$(this).addClass('menu-home-active');
goToByScroll($(this).attr("href"));
});
//scroll bar control
$(window).scroll(function() {
var scrv = $(this).scrollTop();
var allmenu = $("#menu-home ul li a");
if(scrv == 0){
allmenu.removeClass('menu-home-active');
$('#menu-div1').addClass('menu-home-active');
}
if(scrv > 458 && scrv < 478){
allmenu.removeClass('menu-home-active');
$('#menu-div2').addClass('menu-home-active');
}
if(scrv > 989 && scrv < 1009){
allmenu.removeClass('menu-home-active');
$('#menu-div3').addClass('menu-home-active');
}
if(scrv >= 1324){
allmenu.removeClass('menu-home-active');
$('#menu-div4').addClass('menu-home-active');
}
});
感謝
我想我把變量在一個錯誤的地方完成滾動。我使用自動滾動功能更新了代碼。謝謝 –
我已經用新的goToByScroll函數更新了答案 – Alxandr
完美!謝謝 –