$(...).toggle
ничего не делает сразу. Он просто привязывает события щелчка к выбранным элементам, так что в будущем щелчок вызывает одну из двух функций. Таким образом, первый щелчок делает только настройку обработчика события переключения. Второй щелчок фактически вызывает обработчик события переключения. (А также добавляет еще один обработчик событий переключения! Поэтому третий щелчок вызывает два переключателя событий и т. Д.)
.toggle
- это альтернатива привязке .click
, а не то, что вы (обычно) используете в обработчике .click
.
Не существует «живой» версии toggle
, но вы можете написать ее самостоятельно, например ::
function livetoggle(selector, f0, f1) {
$(selector).live('click', function(event) {
var t= $(this).data('livetoggle');
$(this).data('livetoggle', !t);
(t? f1 : f0).call(this, event);
});
}
livetoggle('a.divToggle', function() {
...
}, function() {
...
});