2011-08-11 13 views
1
$('#ajax-links a').live('click', function(e) { 
    var url = $(this).attr('href'); 
    url = url.replace(/^.*#/, ''); 
    $.history.load(url); 
    return false; 
}); 

「クリック」を「dblclick」に置き換えるたびに、それはクリックイベントとして動作します。デモはこちら(http://www.serpere.info/jquery-history-plugin/samples/ajax/)で、ソースはこちらからダウンロードできます。https://github.com/tkyk/jquery-history-plugin/tree/master/samples/dblclickイベントがclickイベントのように機能するのはなぜですか?

+0

なりあなたに役立つコードをダウンロードしてください。どうすればjsFiddleで問題を設定し、私たちと共有するのですか? –

+0

http://stackoverflow.com/questions/4562012/make-a-link-open-on-double-clickを参照してください –

+0

何らかの理由でjsfiddleでコピー/貼り付けできません – user784637

答えて

2

dblclickを追加する際にシングルクリックでデフォルトを防止してください:

代わりのreturn false;あなたはイベントのデフォルトのアクションを防ぐことができます:あなたはバブルにイベントをしたくない場合は、上の

$('#ajax-links a').live('click', function(event) { 
    event.preventDefault(); 
}); 
$('#ajax-links a').live('dblclick', function(event) { 
    event.preventDefault(); 
    var url = $(this).attr('href'); 
    url = url.replace(/^.*#/, ''); 
    $.history.load(url); 
}); 

DBLCLICKイベントevent.stopPropagation()機能を使用することができますDOMを投げる

あなたはdblclickで次のようなものを参照することができます:#/some_page/ dblclickイベントハンドラはほぼ同じです。 $.historyプラグインで/some_page/を保存し、私の経験で$ .historyプラグインは、ほぼ同じことを:呼び出しでに解析されたURLを受け取り、ハッシュにそれを置く:URLを= /some_page/は、誰もが起こっていない#/some_page/

アンドレアス

+0

それは素晴らしい仕事です。何らかの理由でダブルクリックがシングルクリックになると思うのですが、その理由を知りたいのですか?おそらく、アンカーのデフォルトはシングルクリックになっているのでしょうか? – user784637

+1

私は前にこれを書いておきません。 Dlbclickイベントは、クリックするとすぐに表示されます。クリックすると、シングルクリックイベントが発生します。あなたのシングルクリックはあなたが書いているそのdblclickとほぼ同じです混乱を招いて申し訳ありません。 – andlrc

+0

こんにちはアンドレアス、ありがとうございます。ダブルクリックがクリックイベントを 'dblclick'に変更したときにダブルクリックがシングルクリックにデフォルト設定されていると言いましたが、元のコードを参照していました – user784637

関連する問題