Документация jQuery для метода .toggle()
сообщает:
Метод .toggle () предоставляется для удобства. Относительно просто реализовать то же самое поведение вручную, и это может быть необходимо, если предположения, встроенные в .toggle (), ограничивают.
Предположения, встроенные в .toggle
, оказались ограничивающими для моей текущей задачи, но документация не раскрывает, как реализовать то же поведение. Мне нужно передать eventData в функции-обработчики, предоставляемые toggle()
, но похоже, что только .bind()
будет поддерживать это, а не .toggle()
.
Мое первое желание состоит в том, чтобы использовать флаг, который является глобальным для одной функции-обработчика, для сохранения состояния щелчка. Другими словами, а не:
$('a').toggle(function() {
alert('odd number of clicks');
}, function() {
alert('even number of clicks');
});
сделать это:
var clicks = true;
$('a').click(function() {
if (clicks) {
alert('odd number of clicks');
clicks = false;
} else {
alert('even number of clicks');
clicks = true;
}
});
Я не проверял последнее, но подозреваю, что это сработает. Это лучший способ сделать что-то подобное, или я пропускаю лучший способ?
Спасибо!