Domanda, esiste una funzione o comunque una maniera per indicare tutti gli elementi che non hanno un certo id?
Qualcosa del genere:
codice:document.getElementById("==! a").addEventListener( 'click' , funzione );
Domanda, esiste una funzione o comunque una maniera per indicare tutti gli elementi che non hanno un certo id?
Qualcosa del genere:
codice:document.getElementById("==! a").addEventListener( 'click' , funzione );
Grazie della risposta. Proverò appena posso, però intanto ti espongo un dubbio.
Non conosco molto JS, me la cavo più in PHP. Mi suggerisci di far avviare la funzione solo se non ha quel determinato id, nel mio caso $a. Io sto usando la funzione "addEventListener" per intercettare il click di un'ancora. Il sistema inline nel mio caso non funzionava, così come far partire la funzione direttamente al click "$('#myDiv').click(function()". Appunto perché non conosco bene JS mi sono affidato ai consigli che ho trovato sul web.
A questo punto credo di essere obbligato a definire la variabile in ascolto. Dico una cavolata?
Ah.. chiedo scusa, senza la parte di funzione forse il discorso è campato in aria:
codice:function unCheck(){ $('#upprodotti[value="a"]').prop('checked', true); }; window.onload = function(){ document.getElementById("buttonclick1").addEventListener( 'click' , unCheck );
Quello che ti suggerisco è di verificare *all'interno della funzione*, tramite "this", se l'elemento cliccato ha o meno l'id che vuoi escludere.
Dunque, con l'utilizzo di this non ci sono riuscito, non so come metterlo giu correttamente; ma sono comunque arrivato a questo:
Questo è il restante codice:codice:document.addEventListener("click", function(){ if(!$(event.target).parents("#button3").is("#button3")) { if( !$('#upprodotti').prop('checked') ){ $('#upprodotti').prop('checked',true); } else { $('#upprodotti').prop('checked',false); } } });
codice HTML:<input type="radio" name="apriprodotti" id="upprodotti" /> <input type="radio" name="apriprodotti" id="downprodotti" /> <div id="menu"> <ul> <li id="button1" class="bottone scendi attuale"><a href="#home" title="Vai alla Homepage" >Home</a></li> <li id="button2" class="bottone scendi"><a href="#chisiamo" title="Scopri chi siamo" >Chi siamo</a></li> <li id="button3" class="bottone">Prodotti <label for="upprodotti" id="menuup"><img src="images/mascherina.png" alt="Chiudi" /></label> <label for="downprodotti" id="menudown"><img src="images/mascherina.png" alt="Apri" /></label> </li> <li id="button4" class="bottone scendi"><a href="#contatti" title="Contattaci" >Contatti</a></li> </ul> </div>codice:#downprodotti:checked ~ #wrapper #menutendina {top:10em} #downprodotti:checked ~ #wrapper #header #menu #menudown {display:none} #upprodotti:checked ~ #wrapper #menutendina {top:-12em;}
Funziona, nel senso che ogni click non applicato all'id button3 attiva il checked dell'input: input che fa partire la transizione css per lo scorrimento della tendina, in questo caso per la risalita.
Il problema è che resta su checked l'id upprodotti. Se clicco per far scendere la tendina questa scende un istante ma il check viene subito ricommutato. Non capisco perchè.
Risolto!!
Tenevo in considerazione l'id sbagliato, quello del campo label invece che dell'input collegato.
Il risultato è questo:
Se c'è qualche altra strada o qualche consiglio/correzione è sempre bene acceta.codice:document.addEventListener("click", function(event){ if(!$(event.target).is("#downprodotti")) { if(!$('#upprodotti').prop('checked')){ $('#upprodotti').prop('checked',true); } else { $('#upprodotti').prop('checked',false); }; if($(event.target).is("#upprodotti")) { if(!$('#upprodotti').prop('checked')){ $('#upprodotti').prop('checked',true); } else { $('#upprodotti').prop('checked',false); }; } } });
Grazie