2015-10-04 3 views
6

Gesetzt Ich habe dieses HTML:Wie kann ich deaktivieren eine Bindung an einem 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> 

Wie kann ich die bind auf dem div#topbar deaktivieren?

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

Ich versuche dies bereits ohne Erfolg:

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

Eigentlich ist mein Problem, wenn ich ein Mouseover auf dem p Tag machen, wird der Code nicht funktionieren.

PS: Ich habe keine Kontrolle über die HTML, so dass ich gemeinsame Tag wie body verwenden muss.

Danke.

Antwort

1

Versuchen Sie ein anderes div für den Rest des Körpers zu schaffen:

<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> 

und 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"); 
    } 
}); 

Aktualisiert: JSFiddle

+0

Wie ich weiß nicht, ob #mouseEvent auf der Website vorhanden ist Ich kann es nicht benutzen. Ich muss einen gemeinsamen Tag wie den Körper verwenden. – PacPac

+0

@PacPac ok ein Moment – morha13

+0

@PacPac Aktualisierte Antwort – morha13

Verwandte Themen