0

イベント ハンドラーをクラス ".btn" の要素にデリゲートするとします。クラス ".btn" を持つ各要素には、ボタンの種類を示す別のクラスが関連付けられます。例えば:

<div class=".btn show">text</div>

物事を示すボタンになります。

これらのケースが 100 万件ある場合、これは適切な方法でしょうか?

$(document).ready(function() {
    $('table').on('click', '.btn', function() {
        if ($(this).hasClass('show')) {
             show something ... 
        } else if ($(this).hasClass('submit')) {
             submit something ...
        } else if ($(this).hasClass('foo')) {
             do something ...
        }

つまり、ボタンの種類ごとに異なるイベント ハンドラーを用意する必要があります (それぞれが異なる処理を行います)。

 $('.btn .show').click(function() {
     show something ...
 });

または、if else ステートメントのチェーンを使用して、hasClass() に関連付けられたクラスをチェックする必要がありますか? なんで?

4

1 に答える 1

0

if..else ifチェーンを使用する必要があると思います。これにより、コードが理解しやすくなり、現在の要素のクリック イベントでそれを呼び出しているため、高速になるはずです。

于 2013-10-21T07:42:42.383 に答える