Capita milioni di volte di aver, su una pagina web, il classico trigger “Visualizza XXX” che, una volta visualizzato XXX diventa “Nascondi XXX”. Secondo me il più piccolo codice che effettua questa operazione con jQuery è il seguente:
// Usa un <a> come trigger
$("#tgl-XXX").click(function() {
$(this).html($('#lst-XXX').toggle().is(':visible') ? 'Hide XXX list' : 'Show/Edit XXX list');
return false;
});
No?
Nota: non è possibile in questo modo usare il parametro “fast/slow” della toggle.
3 Responses to “Snippet – show/hide oneliner”
Secondo me puoi risparmiare 5 caratteri così:
$(“#tgl-XXX”).click(function() {
return ! $(this).html($(‘#lst-XXX’).toggle().is(‘:visible’) ? ‘Hide XXX list’ : ‘Show/Edit XXX list’);
});
No, non puoi. $(this).html() torna sempre qualcosa (alla peggio, un array vuoto). Un click deve poi tornare sempre false, in quel caso.
sprecherei qualche byte in più per evitare di scorrere di nuovo il dom nella seconda chiamata di $(‘#lst-XXX’).
Additional comments powered by BackType