Scusatemi la lungaggine del post, ma ho voluto inserire quanti più elementi possibile per essere compreso. Spero di non ottenere l'effetto opposto.
Per capire meglio il mio problema vi prego di tener presente il tasto “Opzione per la notizia” di Facebook, cioè il tasto con la freccia in basso presente su ogni post. In effetti ciò che ho provato a realizzare è una cosa molto simile ed il mio tasto “opzione per la notizia” ha per classe ‘ .tasto_menu ‘ e per id un id generato dalla pagina stessa e che io intercetto attraverso getAttribute(‘data-menu’). Quando io clicco sul mio tasto compare, come dovrebbe, un piccolo div contenente un elenco cliccabile. Se poi clicco di nuovo sullo stesso tasto il div scompare, se invece clicco su un tasto diverso da quello che ha permesso l’apertura del Div opzioni, quest’ultimo si chiude per aprirsi quello sotto il tasto appena cliccato. Fin qui tutto sembra funzionare alla perfezione.
Il problema nasce nel momento in cui io clicco su un elemento dell’elenco, ad esempio messaggio.
L’elemento messaggio ha per classe ‘.messaggio’ ed al suo click genera un Div (#form_messaggio) al centro della pagina che ha a sua volta un tasto di chiusura Div (#chiudi_messaggio). Quando io chiudo il Div #form_messaggio tutto sembra essere tornato allo stato iniziale, ma quando clicco su uno dei tasti “Opzione per la notizia” il Div opzioni si apre per poi richiudersi.
Per capire cosa succede ho inserito degli alert nel codice, ecco cosa succede:
- pagina appena caricata, clicco su uno dei tasti “Opzione per la notizia” (es.: menu1):
Alert : false menu1
Alert: false menu1
Il Div opzioni menu1 si apre
Se clicco di nuovo sul tasto menu1:
Alert : true menu1
Alert: true menu1
Il Div opzioni menu1 si chiude
Se invece avessi cliccato sul tasto menu2:
Alert : false menu2
Alert: false menu2
Il Div opzioni del menu1 si chiude
Il Div opzioni del menu2 si apre
Se clicco su un qualsiasi Div opzioni dopo aver chiuso il Div #form_messaggio:
Alert : false menu1
Alert: false menu1
Alert : true menu1
Alert: true menu1
Il Div opzioni del menu1 si apre per poi richiudersi subito
Codice per l'apertura del Div Opzioni
codice:
$('.tasto_menu').click(function(){
$('.select_option').fadeOut();
var id_menu_biblio = this.getAttribute('data-menu');
visibile = $('#'+id_menu_biblio).is(':visible');
if(visibile===false){
alert(visibile+" "+id_menu_biblio);
$('#'+id_menu_biblio).fadeIn();
alert(visibile+" "+id_menu_biblio);
}
else if(visibile===true){
alert(visibile+" "+id_menu_biblio);
$('#'+id_menu_biblio).fadeOut();
alert(visibile+" "+id_menu_biblio);
}
})
Codice per l'apertura del FORM MESSAGGI
codice:
$('.messaggio').click(function(){
$('#form_messaggio').remove('#form_messaggio');
var messaggio = this.getAttribute('data-messaggio');
var urlform;
urlform = 'messaggio.php?biblio='+messaggio;
$('#pagina').append('<div id="form_messaggio"></div>');
$('#form_messaggio').load(urlform);
})
Codice per la chiusura del Form Messaggi
codice:
$('#chiudi_messaggio').click(function(){
$('#form_messaggio').remove('#form_messaggio');
Ringrazio tutti per l'attenzione.