Sto creando un menu che si apre e si chiude usando jQuery. In termini semplici, funziona così:
function open_menu() {
$(this).next('ul.sub-menu').css('display', 'block').stop(true, false).animate({
width: '235px',
}, 500);
}
function close_menu() {
// close code here
}
status = 'closed'; // set the default menu status
$('a').click(function() {
switch(status) {
case 'closed':
open_menu();
break;
case 'open':
close_menu();
break;
}
}
Se prendo il contenuto di open_menu()
e metterlo al posto del open_menu()
in caso .click()
, ogni funziona come previsto. Se utilizzo il codice come mostrato sopra, $(this)
non è in grado di capire che .click()
lo ha generato e il codice non viene eseguito.
C'è qualcosa che posso fare per avere il selettore $(this)
negoziare cosa ha sparato mentre lo teneva in open_menu()
?
Ho provato questo, ma potrebbe non averlo fatto correttamente. Ho aggiunto 'test = $ (questo);' subito prima dell'interruttore e l'abbiamo passato. Suono giusto? – Combobreaker
L'ho fatto funzionare. Ho dovuto usare 'this', non' $ (this) '. Grazie. – Combobreaker