0

次のようなjQueryのコードがあります。

$("#something").click(function() {  
};

関数内#somethingで、短時間に1回だけクリックされたかどうかを確認し、2回以上クリックされた場合は1回のように動作します。

私はこのコードを試しました:

if(!event.detail || event.detail == 1) { do_something; }

Firefox を除くほとんどのブラウザで動作します。理由はわかっていますが、これに対する解決策は見つかりませんでした。イベントで試しpreventDefaultてみましdblclickたが、Chromeでは動作しません...

何か案は?

4

4 に答える 4

0

を使用してevent.timeStamp、2 つのイベント間の時間を決定できます。

$("#something").click(function( event ) {  
    this.lastClick = this.lastClick || 0;

    if( event.timeStamp - this.lastClick > 200 ) {
        // do something
        alert('click');
    } else {
        // last click occured below 200ms, set out `lastClick` to the current timestamp
    }

    this.lastClick = event.timeStamp;
});

ここでは少しずさんでlastClick、DOM 要素のオブジェクト表現に を格納しています。その変数をアプリのより高いスコープに配置することをお勧めします。

于 2013-03-15T12:26:56.310 に答える
0

それを行う不正な方法があります。

グローバル変数を持ち、

click event 内で、インクリメントします。

十分なクリックが蓄積されたら、$(this)オブジェクトを使用して要素からクリック イベントを削除します

于 2013-03-15T12:26:57.843 に答える
0

コードを少し変更していますが、

var counter =0;
$("#something").click(function() {  
counter++;
//alert("Clicked : " + counter);
};

これがクリックされた回数を知る最も簡単な方法であることを願っています。

クリックを制御したい場合は、ifで確認してください

if(counter >= 1) {...}

私はこれがうまくいくと思います:)

于 2013-03-15T12:29:16.010 に答える
-1

.dblclick() (JQUERY) を使用 - ダブルクリック .click() (JQUERY) を使用 - シングルクリック

1.2 回のクリックで十分な場合は、それを使用してください。

幸運を。

于 2013-03-15T12:40:00.963 に答える