Il jQuery documentation per i .toggle()
metodo afferma:Alternativa al metodo .toggle() di jQuery che supporta eventData?
Il metodo .toggle() è previsto per convenienza. È relativamente semplice implementare lo stesso comportamento a mano e questo può essere necessario se le ipotesi incorporate in .toggle() si dimostrano limitanti.
Le ipotesi integrate in .toggle
hanno dimostrato limitante per il mio compito attuale, ma la documentazione non elaborare su come implementare lo stesso comportamento. Devo passare eventData alle funzioni del gestore fornite a toggle()
, ma sembra che solo .bind()
supporterà questo, non .toggle()
.
La mia prima inclinazione è quella di utilizzare un flag globale per una funzione di gestore singolo per memorizzare lo stato del clic. In altre parole, piuttosto che:
$('a').toggle(function() {
alert('odd number of clicks');
}, function() {
alert('even number of clicks');
});
fare questo:
var clicks = true;
$('a').click(function() {
if (clicks) {
alert('odd number of clicks');
clicks = false;
} else {
alert('even number of clicks');
clicks = true;
}
});
Non ho ancora testato il secondo, ma ho il sospetto che avrebbe funzionato. È questo il modo migliore per fare qualcosa del genere, o c'è un modo migliore che mi manca?
Grazie!
Non capisco la tua domanda. Cosa stai cercando di fare? – cletus
@cletus: non riesco a utilizzare .toggle() perché non sembra supportare il passaggio di eventData alla funzione del gestore. Sto cercando la migliore soluzione alternativa che supporti eventData, che (per quanto mi consta) sarà basato sul metodo .bind(). In altre parole, dove la documentazione di jQuery dice "è relativamente semplice implementare lo stesso comportamento a mano", sto cercando di fare proprio questo. – Bungle