Revision: 11934
Updated Code
at February 25, 2009 04:10 by ping_ch
Updated Code
/** * ImageSelect jQuery plugin * * @author Stefan Zollinger * * options: * containerClass: 'image-select-container' * imageClass: 'image-select' * thumbnailWidth: '60' * imageSrc: 'text' or 'value' * */ (function($) { $.fn.imageSelect = function(options){ var opts = $.extend({}, $.fn.imageSelect.defaults, options); return this.each(function() { var $this = $(this); if(this.tagName == 'SELECT'){ $this.wrap('<div class="' + opts.containerClass + '">' ); var html = ''; $this.children('option').each(function(){ if(this.selected == true){ selectClass = 'selected'; }else{ selectClass = ''; } var src; if(opts.imageSrc == 'text'){ src = $(this).text(); }else{ src = this.value; } if (this.value == '' || this.value == undefined) { html += '<a class="' + selectClass + ' ' + opts.imageClass + '" href="#select_' + this.value + '"><div style="background-color: #ccc; width: ' + opts.thumbnailWidth + 'px; height: ' + opts.thumbnailWidth + 'px" >'+opts.emptyText+'</div></a>'; } else { html += '<a class="' + selectClass + ' ' + opts.imageClass + '" href="#select_' + this.value + '"><img src="' + src + '" style="width: ' + opts.thumbnailWidth + 'px" /></a>'; } }); $(this).after(html); $('a.image-select').click($.fn.imageSelect.selectImage); $this.css('display', 'none'); } }); } $.fn.imageSelect.selectImage = function(e){ var $selectBox = $(this).prevAll('select:first'); if($selectBox.attr('multiple') == true){ var $option = $selectBox.children('option[value='+this.href.split('_')[1]+']'); if($option.attr('selected') == true){ $option.attr('selected', false); $(this).removeClass('selected'); }else{ $option.attr('selected', true); $(this).addClass('selected'); } }else{ $selectBox.val(this.href.split('_')[1]); $(this).parent().children('a').removeClass('selected'); $(this).addClass('selected'); } return false; } $.fn.imageSelect.defaults = { containerClass: 'image-select-container', imageClass: 'image-select', imageSrc: 'text', thumbnailWidth: '60', emptyText: 'No image', }; function debug(msg) { if (window.console && window.console.log) window.console.log('imageselect: ' + msg); }; })(jQuery)
Revision: 11933
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 24, 2009 08:50 by ping_ch
Initial Code
/** * ImageSelect jQuery plugin * * @author Stefan Zollinger * * options: * containerClass: 'image-select-container' * imageClass: 'image-select' * thumbnailWidth: '60' * imageSrc: 'text' or 'value' * */ (function($) { $.fn.imageSelect = function(options){ var opts = $.extend({}, $.fn.imageSelect.defaults, options); return this.each(function() { var $this = $(this); if(this.tagName == 'SELECT'){ $this.wrap('<div class="' + opts.containerClass + '">' ); var html = ''; $this.children('option').each(function(){ if($this.val() == this.value){ selectClass = 'selected'; }else{ selectClass = ''; } var src; if(opts.imageSrc == 'text'){ src = $(this).text(); }else{ src = this.value; } if (this.value == '' || this.value == undefined) { html += '<a class="' + selectClass + ' ' + opts.imageClass + '" href="#select_' + this.value + '"><div style="background-color: #ccc; width: ' + opts.thumbnailWidth + 'px; height: ' + opts.thumbnailWidth + 'px" /></a>'; } else { html += '<a class="' + selectClass + ' ' + opts.imageClass + '" href="#select_' + this.value + '"><img src="' + src + '" style="width: ' + opts.thumbnailWidth + 'px" /></a>'; } }); $(this).after(html); $('a.image-select').click($.fn.imageSelect.selectImage); $this.css('display', 'none'); } }); } $.fn.imageSelect.selectImage = function(e){ $(this).prevAll('select:first').val(this.href.split('_')[1]); $(this).parent().children('a').removeClass('selected'); $(this).addClass('selected'); return false; } $.fn.imageSelect.defaults = { containerClass: 'image-select-container', imageClass: 'image-select', imageSrc: 'text', thumbnailWidth: '60' }; function debug(msg) { if (window.console && window.console.log) window.console.log('imageselect: ' + msg); }; })(jQuery)
Initial URL
jquery.imageselect
Initial Description
Converts a standard select box to a clickable image thumbnail list. <code> <select> <option>/images/test1.jpg</option> <option>/images/test2.jpg</option> </select> <script> $('#image').imageSelect(); </script> </code> ** Updated 2009-02-25: Now supports multi-select boxes
Initial Title
jQuery imageSelect Plugin
Initial Tags
javascript, forms, jquery
Initial Language
jQuery