2015-04-14 68 views
0

我會永遠感激,如果有人可以幫助我(jQuery的newb)與這個希望容易解決的問題。jquery切換選項卡 - 需要摺疊溢出的外部容器:隱藏集

請參閱本測試:

http://the3rdobject.com/test3/index.html

一切從關運作良好,除了一兩件事 - 我試圖摺疊外紅框內點擊了關閉選項卡時,面板關閉完美但不幸的是外部容器保持打開狀態。我試圖讓這個工作的原因是這個選項卡出現在旋轉木馬滑塊的頂部,而面板保持打開狀態時,它會阻止部分底層圖像的滑動功能。

我的jquery只是添加和刪除一個類來控制高度。它可以成功地添加類,但不會刪除它。我相信這很簡單,但我的jquery最好是片狀的。

<script> 
    $(function(){ 
     $(".collectionbutton").click(function(){ 
      if($(".collectionbutton a").hasClass('openpanel')){ 
       $(".text").animate({top:'-' + $(".text-content-container").css('height') + 'px'}, 500); 
       $(".collectionbutton a").toggle(); 
       $(".text-wrap").addClass('heightchange'); 
      } else { 
       $(".text").animate({top:$(".text-content-container").css('') + 'px'}, 500); 
       $(".collectionbutton a").addClass('openpanel'); 
      } 
     }); 
    }); 
    </script> 

我試着加入:

$(".text-wrap").removeClass('heightchange'); 

else語句的所有位置內,但它只是不會刪除類。我究竟做錯了什麼?

+0

可以爲您提供jsfiddle – madalinivascu

+0

我以前從未使用過它...我需要將所有內容粘貼到每個框中嗎?有很多東西連接起來,因爲我已經將這個測試從我正在構建的網站中剝離出來,所以有很多東西將這個概念鏈接起來,可能不會被使用 - 我想這樣做有點難以排除故障。 – Goardo

回答

0

你可以嘗試這樣的事情,看看它是否工程...

$(function(){ 
     $(".collectionbutton a").click(function(){ 
      if($(this).hasClass('openpanel')){ 
       $(".text").animate({top:'-' + $(".text-content- container").css('height') + 'px'}, 500); 
       $(".collectionbutton a").toggle(); 
       $(".text-wrap").removeClass('heightchange',{duration:500}); 

      } else { 
       $(".text").animate({top:$(".text-content-container").css('') + 'px'}, 500); 
       $(".text-wrap").addClass('heightchange',{duration:500}); 
       $(".collectionbutton a").toggle(); 

      } 
     }); 
    }); 

//嘗試這個新的代碼....應該可以正常工作現在..

$(function(){ 
     $(".collectionbutton a").click(function(){ 
      if($(this).hasClass('openpanel')){ 
       $(".text").animate({top:'-' + $(".text-content-container").css('height') + 'px'}, 500); 
       $(".collectionbutton a").toggle(); 
       setTimeout(function() { 
        $(".text-wrap").removeClass('heightchange'); 
       }, 500); 

      } else { 
       $(".text").animate({top:$(".text-content-container").css('') + 'px'}, 500); 
       $(".text-wrap").addClass('heightchange'); 
       $(".collectionbutton a").toggle(); 

      } 
     }); 
    }); 
+0

我已經嘗試刪除else語句中的類,這根本不起作用 - 這是問題所在。根據我上面發佈的代碼,該類在if語句中成功添加。我可以嘗試你發佈的內容,但我相信這仍然會隱藏問題。 – Goardo

+0

當然試試,​​讓我知道如果它不工作! – Kalish

+0

你好 - 你的解決方案已經以某種方式工作,因爲它完全打開,現在它實際上會摺疊容器 - 但是,它不會在摺疊外部容器之前完成關閉面板的第二個動畫 - 感覺像某種類型的進度雖然!!!有任何想法嗎? – Goardo