我有一组可以在我的 jquery 移动页面上滚动的 div。每个 div 在 CSS 中都有一个活动类,因此当它们被点击时它们会改变颜色。出于某种原因,当我尝试滚动列表时,这些项目会变为活动状态,因为我正在“单击”它们。
这不是太严重,看起来不错,但还有另一个小故障。如果页面是内部滚动的,所以我只是轻弹它并且它没有停止移动,在屏幕上点击会激活我第一次滚动时按下的 div。
知道是什么导致了这个/如何阻止它吗?
我有一组可以在我的 jquery 移动页面上滚动的 div。每个 div 在 CSS 中都有一个活动类,因此当它们被点击时它们会改变颜色。出于某种原因,当我尝试滚动列表时,这些项目会变为活动状态,因为我正在“单击”它们。
这不是太严重,看起来不错,但还有另一个小故障。如果页面是内部滚动的,所以我只是轻弹它并且它没有停止移动,在屏幕上点击会激活我第一次滚动时按下的 div。
知道是什么导致了这个/如何阻止它吗?
你可以试试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
有点击事件的情况下,它仍然会起作用。