2010-05-20 62 views
0

我有一個基本上允許用戶切換div,打開或關閉的jQuery代碼片段 - 它們的首選項保存在cookie中。jQuery崩潰(與cookie),默認打開,而不是關閉?

(function($) { 
$.fn.extend({ 
    collapse: function(options) { 

     var defaults = { 
      inactive : "inactive", 
      active : "active", 
      head : ".trigger", 
      group : ".wrap-me-up", 
      speed : 300, 
      cookie : "collapse" 
     }; 

     // Set a cookie counter so we dont get name collisions 
     var op = $.extend(defaults, options); 
      cookie_counter = 0; 

     return this.each(function() { 

      // Increment cookie name counter 
      cookie_counter++; 

      var obj = $(this), 
       sections = obj.find(op.head).addClass(op.inactive), 
       panel = obj.find(op.group).hide(), 
       l = sections.length, 
       cookie = op.cookie + "_" + cookie_counter; 

      // Look for existing cookies 
      for (c=0;c<=l;c++) { 
       var cvalue = $.cookie(cookie + c); 
       if (cvalue == 'open' + c) { 
        panel.eq(c).show(); 
        panel.eq(c).prev().removeClass(op.inactive).addClass(op.active); 
       }; 
      }; 
      sections.click(function(e) { 
       e.preventDefault(); 
       var num = sections.index(this); 
       var cookieName = cookie + num; 
       var ul = $(this).next(op.group); 
       // If item is open, slide up 
       if($(this).hasClass(op.active)) { 
        ul.slideUp(op.speed); 
        $(this).removeClass(op.active).addClass(op.inactive); 
        $.cookie(cookieName, null, { path: '/', expires: 10 }); 
        return 
       } 
       // Else slide down 
       ul.slideDown(op.speed); 
       $(this).addClass(op.active).removeClass(op.inactive); 
       var cookieValue = 'open' + num; 
       $.cookie(cookieName, cookieValue, { path: '/', expires: 10 }); 
      }); 
     }); 
    } 
}); 

})(jQuery);

演示:http://christianbullock.com/demo/

我只是想知道我怎麼可以顯示列表,默認打開,並有div合攏被點擊的標題是什麼時候?

非常感謝。

基督徒。

回答

0

我認爲它應該工作,如果你只是周圍的節目(SWAP)和隱藏()函數

線25:

panel = obj.find(op.group).hide(), 

panel = obj.find(op.group).show(), 

線33

panel.eq(c).show(); 

panel.eq(c).hide(); 

然後再我認爲你正在使用太複雜的代碼,如果你想隱藏/顯示僅有1元