J'ai un extrait jQuery qui permet essentiellement à un utilisateur de basculer un div, ouvert ou fermé - leur préférence est enregistrée dans un cookie.jQuery Réduire (avec cookies), par défaut ouvert au lieu de fermé?
(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);
Démo: http://christianbullock.com/demo/
Je me demande comment je peux afficher la liste ouverte par défaut, et ont l'effondrement div lorsque l'en-tête est cliqué?
Merci beaucoup.
Christian.