Return to Snippet

Revision: 37699
at December 15, 2010 09:50 by touffies


Initial Code
/*  ------------------------------------------------------------------
    switchSize ------------------------------------------------------- */
    $.fn.switchSize = function(settings) {

        // defaults settings
        settings = $.extend({
            container: 'body',
            arrSizeClass: ['small', 'medium', 'large'],
            defaultClass: 'medium',
            saveCookie: true
        }, settings);

        var $container = $(settings.container);
        return this
			.each(function() {
			    if ($.cookie('switchSize')) { $container.addClass($.cookie('switchSize')); $(this).data("current", $.cookie('switchSize')) }
			})
			.bind("click", function() {
			    var pos;
			    if ($(this).data("current")) {
			        pos = jQuery.inArray($(this).data("current"), settings.arrSizeClass);
			    } else {
			        pos = jQuery.inArray(settings.defaultClass, settings.arrSizeClass);
			    }
			    if (pos >= 0) { //Found Class
			        if (pos == settings.arrSizeClass.length - 1) { //Check if last
			            $(this).data("current", settings.arrSizeClass[0]);
			        } else {
			            $(this).data("current", settings.arrSizeClass[pos + 1]);
			        }
			    } else {
			        //To prevent error
			        $(this).data("current", settings.arrSizeClass[0]);
			    }

			    $container.removeClass(settings.arrSizeClass[pos]).addClass($(this).data("current"));

			    if (settings.saveCookie === true) {
			        $.cookie('switchSize', $(this).data("current"), { expires: 365, path: '/' });
			    }
			});
    };

Initial URL


Initial Description
# Need $.cookie plugin

Initial Title
Font Size Switcher

Initial Tags
jquery

Initial Language
jQuery