0

我有一组可以在我的 jquery 移动页面上滚动的 div。每个 div 在 CSS 中都有一个活动类,因此当它们被点击时它们会改变颜色。出于某种原因,当我尝试滚动列表时,这些项目会变为活动状态,因为我正在“单击”它们。

这不是太严重,看起来不错,但还有另一个小故障。如果页面是内部滚动的,所以我只是轻弹它并且它没有停止移动,在屏幕上点击会激活我第一次滚动时按下的 div。

知道是什么导致了这个/如何阻止它吗?

4

1 回答 1

0

你可以试试stopPropagation

HTML:

<div id='someID'>
    <someElement />
</div>

JS:

$('#someID').click(function(e){
    e.stopPropagation(); //stops default behaviour
    //check to make active/inactive
    if( $('#someID').hasClass('active') ){
        $('#someID').removeClass('active');

        //do what needs to be done when it becomes activated
    } else {
        $('#someID').addClass('active');
        //do what needs to be done when disabled
    }

    //do whatever you always want to here

});

注意:任何需要点击事件工作的东西都必须在之后重新启用,但如果您使用链接/按钮/等。在div有点击事件的情况下,它仍然会起作用。

于 2013-04-15T23:10:09.380 回答