8

div があり、ユーザーがその div をクリックしたときに特定のコードを実行したいとします。私はそれを2つの方法で達成できます。

HTML

<div id="clickme">Click Me</div>

Javascript

$(document).ready(function(){
    $('#clickme').click(function(){
        //Other code here doing abc.
    });
});

2番目の方法は、まさにそれを行う関数を呼び出すことですが、関数によって呼び出されます

<div id="clickme" onclick="clickme()">Click Me</div>

Javascript

function clickme(){
    //Other code doing abc.
}

私の質問は、これらのコードは両方とも同じことをしているということですか? そして、どちらがより効率的で推奨されていますか?

4

3 に答える 3

2

場合によります。通常、非常に単純なものであれば、onlick="" を使用することを好みます。

一方、より複雑で大量のコードを実行する必要がある場合は、読みやすくするためにバインド イベントを使用することをお勧めします。

パフォーマンス/メモリ使用量などの点で onclick="" の方が優れていると正直に信じています。使用しているバインド イベントは jquery のレイヤーにあり、onclick を使用すると、要素から直接イベントが呼び出されます。

それは本当に選択の問題です。

バインド イベントで私が気に入っているのは、何をバインドしてクリックやキーストロークをキャプチャするかについて無限の可能性があることです。bind with delay などの bind イベントを強化する jquery プラグインもあります (bind with delay は、キーを押すと、キーを押してから x 秒後にコードが実行されます。これは、入力時に検索を行う場合に最適です)。キーを押すたびにリクエストを防ぐため、ajax 経由)

さらに情報が必要な場合はお知らせください。

私はあなたに良い洞察を与えたことを願っています:)

于 2013-02-28T07:39:56.080 に答える
1

標準のイベント登録モデルに従うため、.click(function(){ } を使用する方が適切です。

ここでは、複数のコールバックを割り当てることが許可されています。

元:

<script type="text/javascript">
$(document).ready(function() {
    $("#clickme").click(function() {
        alert("clicked!");
    });
    $("#clickme").click(function() {
        alert("I concur, clicked!");
    });
});
</script>

ここで、クリック関数をbind()でバインドすると、要件に応じてその特定の関数のバインドを解除できます。

于 2013-02-28T07:44:26.743 に答える