0

我正在尝试使用 JQuery 切换创建一个滑动子菜单。我尝试了以下但无济于事:

<script> $(".menu li a").click(function(){ var ul = $(this).children("ul"); if (ul.is(":none")) { ul.slideDown(); } else { ul.slideUp(); } }); </script>

并且

<script> $("ul li.menu-item a").click(function() { $(this).children("ul").toggle(); }); </script>

它适用的 HTML 代码是:

<div class="menu-brk-products-container">
<ul id="menu-brk-products" class="menu">
  <li id="menu-item-65" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-65"><a>Smoke Alarms – Ionisation</a>
       <ul class="sub-menu">
           <li id="menu-item-432" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-432"><a href="/?portfolio_cats=battery-powered-smoke-alarms">Battery Powered Alarms</a>
           </li>
      </ul>
  </li>
4

2 回答 2

0

点击绑定必须在文档加载后进行:

$(document).ready(function() {
$("ul li.menu-item a").click(function() { $(this).children("ul").toggle(); });
});

此外,此单击绑定到一个元素,并且由于它不包含任何ul它不会做任何事情。如果您想在“烟雾警报...”上切换“电池供电警报”,请单击然后从选择器中删除一个(但它也会使“电池供电警报”在单击时消失,您需要不同的选择器)。

于 2012-03-01T21:00:26.733 回答
0

尝试:

<div class="menu-brk-products-container">
    <ul id="menu-brk-products" class="menu">
        <li id="menu-item-65" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-65"><a>Smoke Alarms – Ionisation</a>
            <ul class="sub-menu" style="display: none">
                <li id="menu-item-432" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-432"><a href="/?portfolio_cats=battery-powered-smoke-alarms">Battery Powered Alarms</a></li>
            </ul>
        </li>
    </ul>
</div>

<script>
$(document).ready(function() {
    $(".menu li a").click(function(){ 
        var ul = $(this).parent().children("ul"); 

        if (ul.is(":hidden")) { 
            ul.slideDown(); 
        } 
        else { 
            ul.slideUp(); 
        }
    });
});
</script>

最大的问题是带孩子。“this”是锚标记,而不是 <li> 元素,因此没有匹配项返回。此外,我将测试更改为 ":hidden" 以判断我们是否应该向上或向下滑动。

于 2012-03-01T21:11:01.567 回答