-3

私は問題に直面しています。

クリックするとjavascript関数「delete_element_on_page」を呼び出すhrefがあります。

したがって、マウスで HREF をクリックすると、すべて問題なく関数が呼び出されます。

ただし、HREF にはフォーカスがあるため、Enter キーを押し続けると、関数が何度も何度も呼び出され、望ましくない結果につながります。

どうすればこれを防ぐことができますか?

1.関数が呼び出されたときにhrefのフォーカスをぼかす->これを行うことができますが、jquery.blurは個人でのみトリガーできるため、これはHREFごとに手動でこれを行う必要があることを意味します要素レベル。--> または、どの要素がフォーカスされているかに関係なく、普遍的なぼかしを行うことができる場所に相当する JavaScript はありますか?

また

  1. HREFのクリックをトリガーしないようにEnterキーを無効にします->これは可能ですか? もしそうなら、コードの複雑さ/互換性などの点で私の価値があります..

本当にありがとう :)

4

3 に答える 3

1

イベントをバインドして、javascript トリガーを html タグ内に配置しないようにすることができます。

jQuery (より簡単で信頼性の高い方法) を使用すると、次のようになります。

<script src="http://code.jquery.com/jquery.min.js"></script>
<script>
    $("#myelementid").bind("click",function(e){
        e.preventDefault(); // important, to prevent trigering the default a href

        // your code goes here

        $(this).blur();
    });
</script>
于 2012-04-21T04:18:08.040 に答える
1

上記の回答は、キーボードのクリックとマウスのクリックの両方をブロックします。これにより、Enter キーがそのリンクで何も実行できなくなります。#2に相当するので

<a id="fail" href="http://jquery.com">default click action is prevented</a>
<script>
$("#fail").keydown(function(event) {
  event.preventDefault();
});
</script> 
于 2012-04-21T04:45:42.100 に答える
0

クリック イベント ハンドルを jquery でバインドできます。js 関数の呼び出しに href を使用することはお勧めしません。

$("a#id").click(function(){

 // the code goes here;

}) 
于 2012-04-21T04:18:12.933 に答える