我有一组可以在我的jquery移动页面上滚动的div。每个div在CSS中都有一个活动类,因此它们在点击时会改变颜色。出于某种原因,当我尝试滚动列表时,项目变为活动状态,因为我正在“点击”它们。
这不是太严重而且看起来很好,但还有另外一个小故障。如果页面是内部滚动,所以我只是轻弹它并且它没有停止移动,点击屏幕将激活我在第一次滚动时按下的div。
知道造成这种情况的原因是什么/如何阻止它?
答案 0 :(得分: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
内,它仍然有效。