0

私はjqueryで関数を持っています。htmlボックスをクリックすると小さなインフォボックスが表示されますが、私の質問は、ボックスをクリックすると小さなインフォボックスが表示される2つの異なる機能を持つことができるかということです。ダブルクリックしたら、別のページに移動する必要がありますか? 私のコードは次のように書かれています:

<div onclick="getInofbox(id)"><img src="image.jpg" /></div>

クリックすると、コンテンツが入った小さなボックスしか表示されず、ダブルクリック オプションが見つかりません。

4

2 に答える 2

1

dblclick()jqueryイベントを使用できます。

$('div').dblclick(function () {
    alert('Double click');
});

ただし、jQuery API のドキュメントによると、同じ HTML 要素に対して click および dblclick イベント ハンドラーを使用することはお勧めできません。API ドキュメントはこちらで参照できます。

このデモをチェック

あなたのこの質問に対する答え:「私は今この解決策を残し、リンクのある最初のインフォボックスだけを開くことができます.1つの要素をクリックしてインフォボックスを取得すると、他のボックスをクリックすると、クリックした後に最初の箱は閉じた?

両方のリンクのクリックを登録できます。2 番目のインフォボックスを開くときは、最初のインフォボックスを閉じるだけです。

このデモを確認してください。これでは、jQuery UI ダイアログ (モーダル ダイアログではない) を使用し、2 番目のダイアログをクリックすると最初のダイアログを閉じます。

于 2013-07-15T14:22:52.317 に答える
1

同じ要素でクリック イベントとダブルクリック イベントを発生させるには、 timeout を使用します。

var timeout, doubleClick = false;

$('p').click(function() {
   timeout = setTimeout(simpleClick, 500); 
});

$('p').dblclick(function() {
    doubleClick = true;
    clearTimeout(timeout);
    alert('Double click');
});

function simpleClick() {
    if(!doubleClick) {
        alert('Simple click');
    }
    doubleClick = false;
}

ここでは、0.5 秒のタイムアウトがあります。単純なクリックのみを検出した場合は、単純なクリックの関数を呼び出します。それ以外の場合は、タイムアウトをクリアしてダブルクリック機能に進みます。

jsfiddle の例。

于 2013-07-15T14:52:24.303 に答える