2013-04-15 117 views
0

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

这不是太严重,它看起来很好,但也有另一个小故障。如果页面是惯性滚动的,所以我只是轻弹它,它并没有停止移动,屏幕上的一个水龙头将激活我第一次滚动时按下的div。

任何想法是什么造成这个/如何阻止它?

回答

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内,它仍然会起作用。

+0

我仍然希望他们去活动,而不是当他们滚动 – centree

+0

“积极”通过使用类?因为这是使用.addClass('name')添加一个类的简单问题。 – Nukeface

+0

我已经根据类的用法添加了答案,如果您使用其他方法随意提问或修改 – Nukeface