JQuery подсчет кликов, как? - PullRequest
1 голос
/ 22 мая 2011

Я хочу сделать функцию, которая при первом нажатии что-то делает, а при втором отключает, есть ли способ для этого в jQuery?Скажем, например, что при первом щелчке на элементе div он становится красным, а при втором - возвращается к стандартному белому и т. Д.

Я думал сделать какой-то четный нечетный счетчик, но тамдолжно быть лучше ...

Ответы [ 3 ]

2 голосов
/ 22 мая 2011

Вы можете использовать событие toggle.

Демо: http://jsfiddle.net/ThiefMaster/rHVdm/

1 голос
/ 22 мая 2011

В jQuery это называется toggle. С помощью переключателя вы можете чередовать два разных результата, например:

<div id="click">Click me</div>

<script>
$("#click").toggle(function () {
  $(this).css("background-color", "red");
}, function () {
  $(this).css("background-color", "blue");
});
</script>

Более подробная информация доступна на сайте jQuery: http://api.jquery.com/toggle-event/

0 голосов
/ 23 мая 2011

Вы можете использовать статическую переменную (переменную, которая сохраняет свое значение во всех вызовах метода).Ваш код может выглядеть следующим образом:

function kill()
{
    if(!kill.staticVariable) kill.staticVariable = 0;

    if(staticVariable%2 == 0)
    {
        // do something
        staticVariable ++;
    }
    else
    {
        //do the other thing 
        staticVariable ++;
    }
}

Этот код даст вам функциональность, которую вы хотите, и он соответствует тому, как вы думали о проблеме, однако это не лучший способ сделать это, и я только что написалэто потому, что я уверен, что вы найдете очень полезными статические переменные.Надеюсь, это поможет: D

...