我可以在 Jquery 中选择单击还是滚动吗?

发布于 2024-12-11 11:14:31 字数 257 浏览 0 评论 0原文

我有两个事件:

$('#item').click(function...

单击

$(window).scroll(function...

事件滚动页面。但是我想仅在调用单击事件时阻止滚动事件的功能。

当用户手动滚动页面时,我希望滚动事件进行控制。我尝试解除滚动事件的绑定,然后在单击事件完成后再次绑定,但这不起作用。

有什么想法吗?

I have two events:

$('#item').click(function...

and

$(window).scroll(function...

The click event scrolls the page. However I want to prevent the function of the scroll event only when the click event is called.

When the user scrolls the page by hand, then I want the scroll event to take control. I have tried unbinding the scroll event then binding again once the click event completes but that didn't work.

any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迟月 2024-12-18 11:14:31

我让它以这种方式工作:

http://jsfiddle.net/r9XAN/

$(window).scroll(scroll);

$('a').click(function(ev){
    $(window).unbind('scroll').scrollTop(100);
    setTimeout(function(){
        $(window).scroll(scroll);
    },1);
    ev.preventDefault();
});

function scroll(){
    console.log('scrolled'); 
}

这有点奇怪。如果您立即重新绑定滚动事件,它将不起作用。超时为 1 后就可以了。 (至少在 chrome 上)

i got it to work that way:

http://jsfiddle.net/r9XAN/

$(window).scroll(scroll);

$('a').click(function(ev){
    $(window).unbind('scroll').scrollTop(100);
    setTimeout(function(){
        $(window).scroll(scroll);
    },1);
    ev.preventDefault();
});

function scroll(){
    console.log('scrolled'); 
}

It's a bit strange. If you rebind the scroll event immediately it won't work. With a timeout of 1 it does. (on chrome at least)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文