Ho 2 pulsanti, fare clic su uno scambia le classi per entrambi i pulsanti.
Le classi sono selected
e unselected
.Utilizzando jQuery per rimuovere e aggiungere classi ai pulsanti, la nuova classe aggiunta non funzionerà con la sua funzione click
mio CodePen:
http://codepen.io/leongaban/pen/iLBvs
Ad esempio: clicca sul pulsante Login rimuoverà è classe selezionata e dargli la sua classe selezionata e dare il pulsante Register sua classe selezionata.
Ora il problema è che la classe register_unselected
non funziona. Le classi unselected
sono quelle che hanno fare clic su azioni nel mio jQuery.
Dovrei essere in grado di continuare a fare clic sul pulsante grigio e trasformandolo in blu. Tuttavia, dopo aver fatto clic sul primo pulsante grigio (login), il nuovo registro dei pulsanti grigi non funziona.
Utilizzo dell'ispettore di Chrome È evidente che la mia classe register_unselected è stata aggiunta, tuttavia la funzione clic non funziona.
Tutte le idee? Come ti avvicineresti a questo?
// Login Tab (default : first)
$(".login_unselected").click(function(){
console.log('clicked login');
// Show Login Tab as selected
$(this)
.removeClass('login_unselected')
.addClass('login_selected');
// Show Register Tab as unselected
$(this).parent().find('#tab_register')
.removeClass('register_selected')
.addClass('register_unselected');
});
// Register Tab
$(".register_unselected").click(function(){
console.log('clicked register');
// Show Login Tab as selected
$(this)
.removeClass('register_unselected')
.addClass('register_selected');
// Show Register Tab as unselected
$(this).parent().find('#tab_login')
.removeClass('login_selected')
.addClass('login_unselected');
});
due parole: 'delegazione di eventi', l'evento click non cerca elementi che ottengono quella classe quando si lega, solo gli elementi che esistono con quella classe al caricamento della pagina. la soluzione rapida è '$ (document) .on ('click', 'class', function() {// normal code});' sostituendo 'document' con un elemento statico che non cambia. – Ohgodwhy
Grazie per il suggerimento! : D –
@Leon visualizza la mia soluzione attualmente non votata, utilizza meno della metà della quantità di codice che si sta utilizzando attualmente. Non ce n'è bisogno. – Dom