我陷入了下拉菜单。
当我单击导航按钮“ clicker”时,我希望它打开。然后,当我再次单击“ clicker”时,它将关闭。

我希望它仅在单击图像时显示/隐藏。当我在隐藏的div中单击时,它将保持打开状态。

但这不起作用。我不知道为什么。尝试了很多东西。任何想法? (总菜鸟在这里)。

HTML:
(点击“ #clicker”图片=切换下拉菜单;“#dropdown-inside” =隐藏的div;

<div class="header_content">
  <div class="navbar">
    <div id="dropdown-menu">
      <img id="clicker" src="http://porschedvd.de/bluptest/typo3/fileadmin/stromer/template/pix/menu_btn.jpg" alt="">
       <ul id="dropdown-inside">


jQuery的:

$j('#clicker').click(function() {
$j('#clicker').not(this).children('ul').slideUp("slow");

$j(this).children('ul').slideToggle("slow");
});


$j('#clicker').blur(function() {
$j('#dropdown-inside').hide('slow', function() {
});
});


在这里提琴:http://jsfiddle.net/377G6/2/

最佳答案

我已经阅读了您的代码并尝试运行它。
现在您有2点要解决:


您的选择器$j(this).children(ul)找不到列表。

列表ul#clicker的同级元素,因此可以使用方法siblings('ul')next()选择列表,但不能使用children()
现在无法触发“模糊”事件。

通常,事件blur只能在inputtextarea上触发,因此,如果要在blur<img>上触发<div>,则可以为其设置诸如tabindex="-1"的属性。


正如我尝试过的,它在修复后成功运行。

这是链接:http://jsfiddle.net/edisonator/kfcB9/

谢谢,
爱迪生

10-06 09:32