0

問題を表示するためにjsfiddleを設定しました。http://jsfiddle.net/fy8tK/3/

簡単に言えば、シングル クリック トリガーとダブル クリック トリガーの両方を持つ子要素があります。clickどちらも、タイムアウトを使用してイベント内で処理されます。

親用語にもダブルクリック イベントがあります。dblclickただし、を使用して定義しました。event.stopPropagation()が機能していませんが、イベントの種類が異なるためでしょうか?

基本的に、dblclick実際に子要素をクリックしている場合、親イベントが発生しないようにする必要があります。

4

1 に答える 1

1
$('.parent').bind('dblclick', function (e) {
    if (e.target !== 'div.child') {
        alert('double click parent');
    }
});
$('.child').bind('click', function(e) {
    alert('single click child');
});

JSFIDDLE

'dblclick' に関する jQuery ドキュメントから:同じ要素のクリック イベントと dblclick イベントの両方にハンドラーをバインドすることはお勧めできません。トリガーされるイベントの順序はブラウザーによって異なり、dblclick の前にクリック イベントを 2 回受け取るものもあれば、1 回だけ受け取るものもあります。ダブルクリックの感度 (ダブルクリックとして検出されるクリック間の最大時間) は、オペレーティング システムとブラウザーによって異なり、多くの場合、ユーザーが構成できます。

このSOの質問も参照できます

于 2013-07-21T23:49:00.090 に答える