次のコードを検討してください。
HTML
<a href="http://www.google.com" target="_blank" id="myLink" class="anyclass">testlink</a>
ジャバスクリプト
$('#myLink').on("mousedown",doMouseDown);
function doMouseDown(e)
{
e.stopImmediatePropagation();
console.log("Mouse down");
return true;
}
これは私のコードの非常に単純化されたバージョンですが、問題はまったく同じです。つまりe.stopImmediatePropagation()
、ハンドラーで使用すると、リンクをクリックしても Google に送信されないことが予想されます。私はconsole.log()
処刑されるだけです。私のすべての調査は、私がそう考えるのは正しいことを示していますが、リンクの「マウスダウン」ハンドラーとデフォルトの「クリック」ハンドラーの両方を実行しています (つまり、Google を新しいタブで開きます)。
信念なしe.preventDefault()
に、ハンドラーの最初の命令として追加しようとしfalse
ました。 を返そうとしました。 バインディング時にハンドラーを匿名関数として定義しようとしました。これらすべてがさまざまな組み合わせであり、改善はありません。これを修正するアイデアがまったくないことを認めなければなりません。誰か私を正しい方向に向けてくれませんか?どんな助けでも大歓迎です。
テストしたい場合は、ここにフィドルがあります