Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Eventi sovrapposti

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    209

    Eventi sovrapposti

    Ciao, volevo sapere il metodo per evitare che un elemento che ha associato un evento si intralci con l'elemento sottostante con lo stesso tipo di evento.
    Avevo visto qualcosa con cancelBubble o PreventDefault ma non ho capito come applicarli.

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    questa era una pagina di prova per capire il funzionamento.
    In pratica, il click sulla pagina (document) scatena l'evento click.

    Il click su un div scatena prima il suo evento click, poi l'evento click del suo contenitore, in questo caso, document.
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    	<head>
    		<title>prova_tasti</title>
    		<meta name="vs_defaultClientScript" content="JavaScript">
    		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    		<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    		<meta name="ProgId" content="VisualStudio.HTML">
    		<meta name="Originator" content="Microsoft Visual Studio .NET 7.1">
    	<script id="clientEventHandlersJS" language="javascript">
    <!--
    
    function div1_onclick(e) {
    	alert("div1_onclick");
    
    	if(!document.getElementById("Checkbox1").checked) return;
    	
    	//accedo all'oggetto event
    	if(!e) var e = window.event;	
    	
    	//interrompo il flusso dell'evento
    	if(e.stopPropagation) 
    		e.stopPropagation();
    	else
    		e.cancelBubble = true;
    	
    }
    
    
    document.onclick = function(){alert("document.onclick")};
    function Checkbox1_onclick(e) 
    {
    	
    	//accedo all'oggetto event
    	if(!e) var e = window.event;	
    	
    	//interrompo il flusso dell'evento
    	if(e.stopPropagation) 
    		e.stopPropagation();
    	else
    		e.cancelBubble = true;
    	
    	
    }
    
    //-->
    </script>
    </head>
    	<body MS_POSITIONING="FlowLayout">
    		<label for="Checkbox1">Annulla propagazione eventi: </label><INPUT type="checkbox" ID="Checkbox1" NAME="Checkbox1" language="javascript" onclick="return Checkbox1_onclick(event)">
    		<div id="div1" style="width:400px;height:400px;border:1px red solid;" language="javascript" onclick="return div1_onclick(event)">
    		</div>
    	</body>
    </html>
    Pietro

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    209
    grazie Pietro è proprio quello che mi serviva ora lo provo.


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 © 2025 vBulletin Solutions, Inc. All rights reserved.