документация 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;
}
});
Я не тестировал последнее, но я подозреваю, что это сработает. Это лучший способ сделать что-то подобное, или есть лучший способ, который мне не хватает?
Спасибо!