2015-10-04 19 views
6

se io ho questo HTML:Come posso disattivare un vicolo cieco su un div

<body> 
    <div id="topbar"> 
     First block here. 
     <p>Another block here.</p> 
    </div> 
    <div class="header"> 
     <div class="container"></div> 
    </div> 
    <div id="footer">Footer</div> 
</body> 

Come posso disattivare il bind sul div#topbar?

$('body').bind('mouseover mouseout', function(event) { }); 

ho già provato questo senza successo:

if($(event.target).is('#topbar')) { //do nothing } 
else { //do stuff } 

In realtà, il mio problema è che se faccio un passaggio del mouse sul tag p, il codice non funzionano.

PS: Non ho alcun controllo sull'HTML, quindi devo usare tag comuni come body.

Grazie.

risposta

1

Prova a creare un altro div per il resto del corpo:

<body> 
    <div id="topbar">hello 
     <div>How<br>are<br>you<br>today<br>?</div> 
    </div> 
    <div id="mouseEvent"> 
     <div class="header"> 
      <div class="container"></div> 
     </div> 
     <div id="footer">Footer</div> 
    </div> 
</body> 

e JS:

$('body').bind('mouseover mouseout', function(event) { 
    var list = $('#topbar').find("*"); 
    if($(event.target).is("#topbar") || $(event.target).is(list)) { 
     alert("hello"); 
    } else { 
     alert("footer"); 
    } 
}); 

Aggiornato: JSFiddle

+0

Come io non so se esiste #mouseEvent sul sito Non posso usarlo Devo usare tag comuni come il corpo. – PacPac

+0

@PacPac ok un momento – morha13

+0

@PacPac Risposta aggiornata – morha13

Problemi correlati