スクロールできるdivのセットがあります私のjqueryモバイルページで。各divにはCSSのアクティブなクラスがあるため、タップすると色が変わります。何らかの理由でリストをスクロールしようとすると、アイテムを「クリック」しているため、アイテムがアクティブになります。
それはそれほど深刻ではなく、見た目は問題ありませんが、別の不具合もあります。ページが中間スクロールであるため、フリックしただけで動きが止まらない場合は、画面をタップすると、最初にスクロールしたときに押したdivがアクティブになります。
何がこれを引き起こしているのか/それを止める方法はありますか?
回答:
回答№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
クリックイベントが発生しても、引き続き機能します。