2013-05-28 118 views
0

我正在做一個菜單,我可以展開和摺疊。當我點擊它我的代碼工作正常,崩潰div。如果我再次點擊打開的en close div,它也會打開。但第二次這樣做會導致我的div關閉並直接打開。誰能告訴我我做錯了什麼..第二次點擊div關閉並直接打開

 

$(document).ready(function(e) { 

    // Collapse and expand 
    $("#collapse").click(
     function() { 
      $("#information").fadeOut(200); 
      $("#leftColumn").animate({width:"10px"}, 200); 
      $("#collapse").html("»"); 

      $(this).click(function() { 
       $("#information").fadeIn(200); 
       $("#leftColumn").animate({width:"250px"}, 200); 
       $("#collapse").html("«"); 

      }); 
     } 
    ); 


}); 

+0

請提供HTML結構 – Alex

+0

您綁定一個新的功能到'點擊()'事件。它不會覆蓋第一個函數,因此二者都會在第二次點擊時被調用。你可能會看看'toogle()'事件。 – ConcurrentHashMap

回答

0

試試這個,

var toggle=0; 
$("#collapse").click(function() { 
    if(toggle==1){ 
     $("#information").fadeIn(200); 
     $("#leftColumn").animate({width:"250px"}, 200); 
     $("#collapse").html("«"); 
     toggle=0; 
    } 
    else 
    { 
     $("#information").fadeOut(200); 
     $("#leftColumn").animate({width:"10px"}, 200); 
     $("#collapse").html("»"); 
     toggle=1; 
    } 
}); 
+0

這工作完美謝謝! – Robbert

1
$(document).ready(function() { 
    $("#collapse").on('click', function() { 
     var w = parseInt($("#leftColumn").css('width'),10) > 11; 
     $("#information").fadeToggle(200); 
     $("#leftColumn").stop(true,true).animate({width: w ? 10 : 250}, 200); 
     $("#collapse").html(w ? "»" : "«"); 
    }); 
}); 
+0

@Alex爲什麼它應該是? –

+0

哦,抱歉,傢伙在委託我的心:) – Alex

+0

謝謝這個作品! – Robbert

0

您覆蓋第一的onclick功能 - 這就是爲什麼你必須處理您的展開/摺疊有點不同。這種變體簡單地添加和刪除一個類來決定應該使用哪個動畫:

(document).ready(function(e) { 
    // Collapse and expand 
    $("#collapse").click(
     function() { 
      // default case 
      if(!$(this).hasClass('collapsed')) { 
       $(this).addClass('collapsed'); 
       $("#information").fadeOut(200); 
       $("#leftColumn").animate({width:"10px"}, 200); 
       $("#collapse").html("»"); 
      } else { 
       // and in case it is collapsed... 
       $(this).removeClass('collapsed'); 
       $("#information").fadeIn(200); 
       $("#leftColumn").animate({width:"250px"}, 200); 
       $("#collapse").html("«"); 
      } 
     } 
    ); 
}); 
相關問題