2011-06-16 142 views
0

我想創建一個簡單的切換功能,用一個cookie來切換div show()或hide()以記住div在哪個狀態。到現在爲止還挺好。那麼,它的作品有點。當我切換div隱藏()它隱藏,但是當我重新加載頁面要切換分區顯示()我必須單擊按鈕兩次!我已經在這裏讀了一遍,但他們沒有幫助。此外,我試圖使它具有點擊功能,但根本不起作用。jQuery切換功能在第一次點擊時不起作用

這裏北京時間代碼:

jQuery().ready(function() { 

     var footeroff = jQuery.cookie('footeroff'); 
     var toggle_footer = jQuery(".toggle_footer_switch"); 

     if (footeroff == "off") { 
     jQuery("div#footer").hide(); 
     jQuery("div#wkfooter_switch").hide(); 
     toggle_footer.html("<img src='../images/other/zuklappen.png' border='0'>"); 
     }; 

     if (footeroff == "on") { 
     jQuery("div#footer").show(); 
     jQuery("div#wkfooter_switch").show(); 
     toggle_footer.html("<img src='../images/other/aufklappen.png' border='0'>"); 
     }; 

     var footer_switch = jQuery("div#footer"); 
     var toggle_footer = jQuery(".toggle_footer_switch"); 
     var toggle_switch_div = jQuery("div#toggle_switch_div"); 

     jQuery("a.toggle_footer_switch").toggle(
      function() { 
       toggle_footer.html("<img src='../images/other/zuklappen.png' border='0'>"); 
       jQuery("div#footer").fadeOut("slow"); 
       jQuery("div#wkfooter_switch").hide(); 
       jQuery.cookie("footeroff" , "off"); 
      }, 
      function() { 
       toggle_footer.html("<img src='../images/other/aufklappen.png' border='0'>"); 
       jQuery("div#footer").fadeIn("slow"); 
       jQuery("div#wkfooter_switch").show(); 
       jQuery.cookie("footeroff" , "on"); 
      } 
     ); 


    }); 

還有就是代碼點擊功能:

 jQuery().ready(function() { 

     var footeroff = jQuery.cookie('footeroff'); 
     var toggle_footer = jQuery(".toggle_footer_switch"); 

     if (footeroff == "off") { 
     jQuery("div#footer").hide(); 
     jQuery("div#wkfooter_switch").hide(); 
     toggle_footer.html("<img src='../images/other/zuklappen.png' border='0'>"); 
     }; 

     if (footeroff == "on") { 
     jQuery("div#footer").show(); 
     jQuery("div#wkfooter_switch").show(); 
     toggle_footer.html("<img src='../images/other/aufklappen.png' border='0'>"); 
     }; 

     var footer_switch = jQuery("div#footer"); 
     var toggle_footer = jQuery(".toggle_footer_switch"); 
     var toggle_switch_div = jQuery("div#toggle_switch_div"); 


     jQuery("a.toggle_footer_switch").click(function() { 

      if (footer_switch.is(":visible")) { 
       toggle_footer.html("<img src='../images/other/zuklappen.png' border='0'>"); 
       jQuery("div#footer").hide(); 
       jQuery("div#wkfooter_switch").hide(); 
       jQuery.cookie("footeroff" , "off"); 
      } 
      else if (footer_switch.is(":hidden")) { 
       toggle_footer.html("<img src='../images/other/aufklappen.png' border='0'>"); 
       jQuery("div#footer").show(); 
       jQuery("div#wkfooter_switch").show(); 
       jQuery.cookie("footeroff" , "on"); 
      } 

     }); 


    }); 

非常感謝您!

致以問候

+0

歡迎來到StackOverflow。由於使用'click'的代碼看起來與使用'toggle'的代碼完全相同,所以最好在問題中使用該空間來發布HTML代替。這將使人們能夠在[jsfiddle](http://jsfiddle.net)中快速獲得演示,以幫助解決您的問題。也就是說,除非你想自己設置一個演示! :) – Town 2011-06-16 09:36:16

回答

0

下面的工作會是什麼?

jQuery().ready(function() { 

    var footeroff = jQuery.cookie('footeroff'); 
    var toggle_footer = jQuery(".toggle_footer_switch"); 

    toggle_footer.toggle(
     function() { 
      toggle_footer.html("<img src='../images/other/zuklappen.png' border='0'>"); 
      jQuery("div#footer").fadeOut("slow"); 
      jQuery("div#wkfooter_switch").hide(); 
      jQuery.cookie("footeroff" , "off"); 
     }, 
     function() { 
      toggle_footer.html("<img src='../images/other/aufklappen.png' border='0'>"); 
      jQuery("div#footer").fadeIn("slow"); 
      jQuery("div#wkfooter_switch").show(); 
      jQuery.cookie("footeroff" , "on"); 
     } 
    ); 
    // since the page starts off with the div shown, so let's hide it. 
    // note that this will do the slow fade - you may want to check for this inside the toggle function and just do an instant hide() instead 
    if (footeroff == "off") { 
     toggle_footer.toggle(); 
    }; 
}); 
+0

嗨格雷戈,現在隱藏.toogle_footer。 :D我不知道爲什麼..但任何..沒有,對不起,仍然需要雙擊。 :( – Damoch 2011-06-16 09:59:19

0

我知道這是一個非常古老的問題,而只是對於那些尋求速戰速決的人,這個工作對我來說:

一個。在PHP/HTML文件中:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/.../jquery.min.js"></script> 
    <script> 
    $(document).ready(function(){ 
     $("#pClick").click(function(){   
      $("#pText").toggle(); 
      $("#pText").text("..."); 
     }); 
    }); 
    </script> 

b。在CSS文件中:

#pText {display: none;} 

它現在即使在第一次點擊時也能正常工作。這是一個簡單而快速的答案,我希望對某些人有用。

相關問題