0
<div id="element1" onclick="func();">1</div>
<div id="element2" onclick="func();">2</div>
<div id="element3" onclick="func();">3</div>
<div id="element4" onclick="func();">4</div>
<div id="element5" onclick="func();">5</div>
<div id="element6" onclick="func();">6</div>
<div id="element7" onclick="func();">7</div>
<div id="element8" onclick="func();">8</div>

ユーザーが任意のdivをクリックすると、func()関数が機能し、カウンターがfunc()関数を処理する回数を計算します。たとえば、ユーザーがdivをもう一度クリックしたときよりも2回(数を決定します)プロセスfunc()関数は機能しません。jqueryでこれを行うにはどうすればよいですか?

4

1 に答える 1

3

グローバル変数を使用して、関数が呼び出された回数を追跡します。

var counter = 0;

function func() {

    counter++;
    if (counter > 2) return;

    // do other fn stuff
}

少し関連したメモとして、jQueryを使用するときに複数のクリックハンドラーをバインドするためのより良い方法があります。

$('div[id^="element"]').click( func );

もちろん、return実行が停止するので実際には問題ではありませんが、まったく呼び出されたくないfunc場合(つまり、クリックイベントを完全に削除したい場合)は、単純に実行できます(変更を加えた場合)。その上):

$('div[id^="element"]').unbind('click');

これはreturn、コードの最初のセクションのステートメントの代わりになります。

于 2012-11-18T08:06:02.470 に答える