この概念に関する記事がすでにたくさんあることは知っていますが、私の質問には少し違いがあります。
私のページには、リンクがあります:
<a id="mylink">click me </a>
次に、次を使用して href を動的に変更しています。
$get('mylink').href = 'javascript:doSomething(id);';
上記のコードを複数回呼び出さなければならない場合があるため、href 属性の現在の値を、異なる id パラメータで同じ関数を呼び出す JavaScript コードで上書きします。
上記は、私が長い間使用しているものです。しかし、ブラウザウィンドウを閉じたときにユーザーに警告するために OnNavigateAway を実装しようとしているときに、少し前に混乱が始まりました。IE は、ユーザーが href 属性の値を持つアンカーをクリックしたときにも、この onNavigateAway イベントをトリガーします。
そこで、これらの href を jquery クリック イベントに置き換え始めました。
$("#mylink").click(function (e) {
doSomething(id);
e.preventDefault();
});
ただし、このコードは複数回呼び出すことができるので、最初にクリック イベントのバインドを解除してから、再度バインドする必要があることに注意してください。
function completed(result) {
$("#mylink").unbind('click');
$("#mylink").click(function (e) {
doSomething(result.id);
e.preventDefault();
});
}
これは私のJavaScriptを処理する良い方法ですか? それとも、このバインディングとアンバインドは良い習慣ではありませんか?
これを行う別の方法は、onclick 属性を JavaScript で手動で上書きすることです。
これをどのように処理しますか?
お返事をお待ちしております。