2011-01-31 21 views
1

我尽量让与jQuery一的onClick菜单,用下面的问题来了:是否有一个简单的解决方案“排除/隐藏”功能的div?

有含<div>内4个<li>元素,我想表明该div当我点击选择<li>div出现了,当我点击其他li,以前显示div隐藏和更正一个,形式单击李,显示出来。这工作正常,但是当我点击那个div该功能再次隐藏它,并再次显示,这就是我想要解决的。我不希望<div>被功能控制。换句话说,当我点击那个div我不想要发生任何事情。

的HTML看起来像这样:

<div class="footerMenu"> 
     <ul> 
      <li>HOME<div class="onScreen"><img src="fillTxt.png"></div>></li> 
      <li>PLENER<div class="onScreen"><img src="fillTxt2.png"></div></li> 
      <li>STUDIO<div class="onScreen"><img src="fillTxt.png"></div></li> 
      <li>INNE<div class="onScreen"> <img src="fillTxt2.png"></div></li> 
     </ul> 

    </div> 

的JavaScript:

$("div.footerMenu li").click(
    function() { 
     $("div.onScreen").hide(); 
     $(this).children("div.onScreen").fadeIn('fast');  
    },function(){ 
     $("div.onScreen").hide(); 
});//click 

The site(左下菜单,HOME,PLENER等警告BIG组图)

有一个简单的解决方案以某种方式“排除/隐藏”功能的div?

回答

1

这应该工作(它从<div>拦截点击并阻止其向上冒泡和触发点击<li>

$("div.footerMenu li div.onScreen").click( 
    function(e) { e.stopPropagation(); e.preventDefault(); return false; } 
); 
+0

这工作正常!一切就像我想要的。非常感谢你 ;) – Szymon 2011-01-31 21:41:28

1

这是因为DIV是“礼”元素中......

$("div.footerMenu li").click(
    function (event) { 
     if ($(event.target).is("div.onScreen")) return; 
     $("div.onScreen").hide(); 
     $(this).children("div.onScreen").fadeIn('fast');  
    },function(){ 
     if ($(event.target).is("div.onScreen")) return; 
     $("div.onScreen").hide(); 
}); 

你在这里ASING,执行任何操作,如果你不是在div层,点击后前

相关问题