2015-10-04 3 views
6

, предполагающей У меня есть этот HTML:Как я могу отключить привязку на 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> 

Как я могу отключить bind на div#topbar?

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

Я уже попробовать это без успеха:

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

На самом деле, моя проблема, если я делаю Mouseover на p теге, код не работает.

PS: У меня нет никакого контроля над HTML, поэтому я должен использовать общий тег, например body.

Спасибо.

ответ

1

Попробуйте создать другой DIV для остальной части тела:

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

и ЯШ:

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

Обновлено: JSFiddle

+0

Поскольку я не знаю, если #mouseEvent существует на веб-сайте Я не могу его использовать. Я должен использовать общий тег как тело. – PacPac

+0

@PacPac ok один момент – morha13

+0

@PacPac Обновленный ответ – morha13