mom*_*loo 8 html javascript jquery scroll
我有很长的用户可以滚动的垂直链接列表,如果用户滚动,我需要阻止click在此链接上触发事件(触摸).
在当前场景中,当用户通过点击链接开始滚动时,它还会触发clickon链接.这显然很糟糕.那么,有什么办法可以阻止这种行为吗?
在这种情况下,我们可以使用一个标志来阻止click滚动期间的事件,并在滚动停止后启用它.
要收听滚动停止,您可以使用jQuery的数据方法,该方法使我们能够将任意数据与DOM节点相关联,并使用setTimeout()将检查每个250ms用户是否仍然触发滚动的函数,如果不是,它将更改标志:
var disable_click_flag = false;
$(window).scroll(function() {
disable_click_flag = true;
clearTimeout($.data(this, 'scrollTimer'));
$.data(this, 'scrollTimer', setTimeout(function() {
disable_click_flag = false;
}, 250));
});
$("body").on("click", "a", function(e) {
if( disable_click_flag ){
e.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.