0

我需要你的帮助。我想创建一个带有slideUp 和slideDown 效果的小菜单。我找到了解决方案,但我想问您是否有“更清洁”和更好的解决方案。

这是我的代码:

var menu_id = "";
$('.menu li a').click(function(){
    var currentId = $(this).attr('id');
    if(menu_id != ""){
        $('#frame-' + menu_id).slideUp();
    }
    if(currentId != menu_id){
        $('#frame-' + currentId).slideDown();
        menu_id = currentId;
    }
    else{
        menu_id = "blank"
    }
});

问候达里奥

4

2 回答 2

2

这也应该有效:

$(".menu li a").click(function() {
    var frame = $('#frame-' +  this.id);
    if (!$(frame).is(":visible")) {
        $("[id^='frame-']").slideUp();
        $(frame).slideDown();
    } else {
        $(frame).slideUp();
    }
});
于 2012-09-21T13:09:26.563 回答
0

根据 sp00m 的帖子,试试这个

$(".menu li a").click(function() {
   var frame = $('#frame-' +  this.id);
   if ($(frame).is(":visible")) {
       $(frame).slideUp();
   }
   else{
       if($("[id^='frame-']:visible").length == 0)
       {
           $(frame).slideDown();
       }
       else if($("[id^='frame-']:visible").length == 1)
       {
           $("[id^='frame-']:visible").slideUp(function(){
               $(frame).slideDown();
           });
       }                   
   }
});
于 2012-09-21T13:51:05.653 回答