0

clickme同じクラスのボタンのセットがあります:

<button class="clickme">Click Me 1</button>
<button class="clickme">Click Me 2</button>
<button class="clickme">Click Me 3</button>

clickmeクラスのクリック ハンドラーもあります。

$('.clickme').on('click', function () {
  // do stuff
});

このシナリオで個々のボタンのクリック数を追跡するにはどうすればよいですか?

注:以下に独自の回答を提供しましたが、私の回答が最善の解決策であるかどうかはわかりません。簡潔さを改善できると思います。

4

2 に答える 2

1

次のように、個々の要素のクリック数を保存することで、この問題に取り組みます。

$('.clickme').on('click', function () {
    var that = $(this);

    if (typeof (that.data( 'clickCount')) === 'undefined') {
        that.data( 'clickCount', 1);
    } else {
        var clickCount = that.data( 'clickCount');
        clickCount++;
        that.data( 'clickCount', clickCount);
    }

    alert(that.text() + ' clicked ' + that.data( 'clickCount') + ' times.');

    });

ワーキングフィドル

これは最善のアプローチですか?

于 2013-10-30T16:47:36.500 に答える
0

これは非常に単純な例であり、あなたにとって良い例です:

$('.clickme').on('click', function () {
          var count = parseInt($(this).data('click'), 10) || 0;
          count++;
          $(this).data('click',count);
          alert(count);    
        });

HERE : JSFiddle

于 2013-10-30T17:00:43.627 に答える