Linuchs: div bei onmouseover einblenden u. b. onclick eingeblendet lassen

Beitrag lesen

div bei onmouseover einblenden u. b. onclick eingeblendet lassen

wie geht das?

onMouseOver und onMouseOut funktionieren wie gewünscht?

mit onclick hatte ich rumexperimentiert, kam aber zu keinem ergebnis.

Logisch, du kannst die Box, die durch onMouseOver schon sichtbar ist, durch onclick nicht "noch sichtbarer" machen. Und beim Wegziehen der Maus geht die Box wieder aus.

Dann brauchst du einen "Merker", den du bei onclick setzt. Die Funktion, die per onMouseOut aufgerufen wird, fragt diesen Merker ab.

  
<p onclick="toggle(1)" onMouseOver="toggle(2)" onMouseOut="toggle(3)" >Layer ein- / ausschalten</p>  
<div id="layer1" style="position:absolute; display:none;">...</div>  

  
// layer1 muss an dieser Stelle bekannt sein  
var layer1 = document.getElementById( "layer1" );  
var sperre = 0;  
function toggle( art ) {  
  if ( art == 1 ) { // dauerhaft einschalten, nie wieder ausschalten  
    layer1.style.display = "block";  
    sperre = 1;  
  } else if ( art == 2 ) { // temporär einschalten  
    layer1.style.display = "block";  
  } else if ( art == 3 ) { // temporär ausschalten  
    if ( sperre != 1 ) layer1.style.display = "none";  
  }  
}  

So das Prinzip, nicht getestet.

Linuchs