2015-08-14 70 views
0

我用jQuery制作了一个导航栏,它应该在点击时切换下拉菜单。大部分功能都是按照它应该的。e.target不能在opera中工作,chrome

$(function() 
 
{ 
 
    var tab = $(".dr-head"); 
 
    var childList = $(".child-list"); 
 
    tab.click(function(e) 
 
    { 
 
     e.stopPropagation(); 
 
     if ($(this).children("ul").css('opacity') == '0') 
 
     { 
 
      $("ul ul").css(
 
      { 
 
       'opacity': '0' 
 
      }) 
 
      $(this).children('ul').css(
 
      { 
 
       'opacity': '1', 
 
       'margin-top': '-15px' 
 
      }).children('li').css(
 
      { 
 
       'display': 'list-item', 
 
       'position': 'relative', 
 
       'left': '-75px', 
 
       'padding-top': '12px' 
 
      }); 
 
     } 
 
     else 
 
     { 
 
      $(this).children('ul').css(
 
      { 
 
       'opacity': '0', 
 
       'margin-top': '0' 
 
      }).children('li').css(
 
      { 
 
       'left': '-75px', 
 
       'padding-top': '0px' 
 
      }); 
 
     } 
 
    }); 
 
    $("body").click(function(e) 
 
    { 
 
     var targ = $(".nav"); 
 
     if (e.target !== targ) 
 
     { 
 
      $(".dr-head").children("ul").css(
 
      { 
 
       'opacity': '0' 
 
      }); 
 
     } 
 
    }) 
 
});
<!doctype html> 
 
<html> 
 
    <head> 
 
     <link rel="stylesheet" href="nav.css"> 
 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
 
     <script src="nav.js"></script> 
 
    </head> 
 
    <body> 
 
     <nav class="nav"> 
 
      <ul> 
 
       <li><a href="http://sarkelliancreed.comule.com">SarkellianCreed.com</a></li> 
 
       <li class="dr-head"><a href="#">Learn</a> 
 
        <ul> 
 
         <li><a href="http://sarkelliancreed.comule.com/learn/web-design">Web Design</a></li> 
 
         <!-- <li></li> --> 
 
        </ul> 
 
       </li> 
 
       <li class="dr-head"><a href="#">Tutorials and Snippets</a> 
 
        <ul> 
 
         <li><a href="http://sarkelliancreed.comule.com/c/snippets/">Password Generator</a></li> 
 
        </ul>  
 
       </li> 
 
      </ul> 
 
     </nav> 
 
    </body>

一切工作的权利,但是当我点击导航栏之外,在下拉菜单不消失。我怎样才能做到这些工作? http://sarkelliancreed.comule.com/c/new/nav

回答

2

您的代码工作正常。 目前,您的< body>元素仅占用导航栏的高度和宽度。

一旦你添加更多的内容到你的页面,它会增加高度< body>元素。

例如,下面是一个例子,我设置CSS:

height:500px 
background-color:orange 

为<体>,当你点击里面< body>元素中的任何地方它会奏效。

的jsfiddle:https://jsfiddle.net/j66wjtmy/

+0

所以你说,不管我点击是导航栏,因此不会隐藏在下拉菜单? – TricksfortheWeb

+0

@ yak613,我编辑帖子来解释身体的高度是如何起作用的。 – Chitrang

相关问题