1

希望你能帮我解决我的问题。已经烦了很长时间了。

试图让我的菜单工作。

当我单击一个块时,我希望它打开,然后关闭另一个选项卡“如果”另一个选项卡是打开的。

最好的问候 jfb

这里是 JSFIDDLE http://jsfiddle.net/3ZWZu/ 包括 HTML、CSS、JS(jQuery)

$(document).ready(function() {

$('.ac-menu .topLevel').click(function(e) {
    e.preventDefault();

        if($('.ac-menu .topLevel ul').hasClass('open') === true){
        $('.ac-menu .topLevel ul').removeClass('open'); 
        $('.ac-menu .topLevel ul').addClass('closed');  
        $('.ac-menu .topLevel ul').slideUp(300);

    }
        if($(this).next('ul').hasClass('closed') === true){ 
        $(this).next('ul').removeClass('closed');           
        $(this).next('ul').slideDown(300);
        $(this).next('ul').addClass('open');
    }
 });
});
4

2 回答 2

0

假设你使用 JQuery,试试这个:

$(document).ready(function() {    
 $('.ac-menu .topLevel').click(function(e) {
    e.preventDefault();    
    $('.ac-menu ul.open').removeClass('open').addClass('closed').slideUp(300);    
    $(this).next('ul.closed').removeClass('closed').slideDown(300).addClass('open');
  });
});

基本上,这背后的想法是使用ul.openorul.closed选择器,您将只选择ul具有该特定类集的 s。如果没有——那么 JQuery 将返回一个空集并且不会将这些操作应用于任何东西——这就是 JQuery 的工作方式。此外,它允许您链接命令,如我的示例所示。

于 2013-04-17T12:00:06.647 回答
0

我认为你需要那个jsfiddle

我将topLevel类添加到 li 而不是a href

$(document).ready(function() {
  $('.ac-menu li.topLevel').click(function(e) {
    e.preventDefault();
    var isClosed = $(this).find('ul').hasClass('closed');
    $('.ac-menu li.topLevel ul').removeClass('open').addClass('closed').slideUp(300);
    if( isClosed){
        $(this).find('ul').addClass('open').removeClass('closed').slideDown(300);
    }
 });
});
于 2013-04-17T12:23:54.587 回答