Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [risolto] viene eseguita anche la funzione del tag genitore

    Ciao a tutti!
    Sono sicuro che questa domanda è stata posta più volte, ma la funzione cerca non mi ha dato nessun risultato... avrò sbagliato le parole chiave.... Quindi vi posto il mio problema:

    Ho un tag "a", genitore del tag "b".
    "a" ha la funzione alert("sono a");
    "b" ha la funzione alert("sono b");
    quando clicco su "b" visualizzo sia il messaggio "sono b" ma anche il messaggio "sono a".

    come faccio per evitare la propagazione dell'evento (o come si chiama...)?
    (utilizzo la libreria prototype, ma una soluzione "puro javascript" va bene comunque)

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di ilgiovo
    Registrato dal
    Aug 2001
    Messaggi
    518
    codice:
    <script>
    
    function clicka(e) {
    alert("A")
    }
    
    function clickb(e) {
    alert("b")
    if(e.stopPropagation) e.stopPropagation()
    else e.cancelBubble=true
    // con queste due righe viene interrotto il flusso d'evento
    }
    
    </script>
    <div onclick="clicka(event)"><div onclick="clickb(event)">qui</div></div>
    primo risultato di google per "javascript event", tra l'altro una guida proprio di html.it
    Cacca!

  3. #3
    si hai ragione...
    era prototype che mi dava dei problemi.. ho risolto in questo modo:

    questo:
    codice:
    var elt = new Element('input');
    elt.onclick = function(){ myFunction(this); };
    l'ho riscritto così:
    codice:
    var elt = new Element('input');
    Event.observe(elt, 'click', function(event) { 
    		myFunction(event); 
    	});
    per evitare la propagazione dell'evento:
    codice:
    function myFunction(e) {
    Event.stop(e);
    //[...]
    }
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.