diff options
author | lou <louiscuny@gmail.com> | 2011-05-05 12:04:39 +0200 |
---|---|---|
committer | lou <louiscuny@gmail.com> | 2011-05-05 12:04:39 +0200 |
commit | 2b97c9f8c5c3835a60f03efe5490659b04fb9a75 (patch) | |
tree | 9a6d79e9fe42415b6dc64fd5d6942b87b19923d2 /js | |
parent | a36da3776e64cecec0cba8366b02017e66fc4557 (diff) | |
parent | 46ec109620af198e54c3bbbac2bf60e64618f027 (diff) | |
download | multi-select-2b97c9f8c5c3835a60f03efe5490659b04fb9a75.zip multi-select-2b97c9f8c5c3835a60f03efe5490659b04fb9a75.tar.gz multi-select-2b97c9f8c5c3835a60f03efe5490659b04fb9a75.tar.bz2 |
Merge branch 'master' of github.com:lou/multi-select into gh-pages
Conflicts:
js/jquery.multi-select.js
Diffstat (limited to 'js')
-rw-r--r-- | js/jquery.multi-select.js | 43 | ||||
-rw-r--r-- | js/jquery.multi-select.min.js | 14 |
2 files changed, 42 insertions, 15 deletions
diff --git a/js/jquery.multi-select.js b/js/jquery.multi-select.js index 4497a3b..58ec063 100644 --- a/js/jquery.multi-select.js +++ b/js/jquery.multi-select.js @@ -1,5 +1,5 @@ (function($){ - + var msMethods = { 'init' : function(options){ this.settings = { @@ -8,12 +8,12 @@ if(options) { this.settings = $.extend(this.settings, options); } - + var multiSelects = this; multiSelects.hide(); - + multiSelects.each(function(){ - + var ms = $(this); ms.attr('id', ms.attr('id') != undefined ? ms.attr('id') : 'ms-'+Math.ceil(Math.random()*1000)); var container = $('<div id="ms-'+ms.attr('id')+'" class="ms-container"></div>'), @@ -58,13 +58,19 @@ msValues = (ms.val() ? ms.val() : []), alreadyPresent = $.inArray(value, msValues), text = ms.find('option[value="'+value+'"]').text(); - + title_attr = ms.find('option[value="'+value+'"]').attr('title'); + if(alreadyPresent == -1 || method == 'init'){ +<<<<<<< HEAD var selectedLi = $('<li ms-value="'+value+'">'+text+'</li>'), +======= + var selectedLi = $('<li ms-value="'+value+'" title="' + title_attr + '">'+text+'</li>').detach(), +>>>>>>> 46ec109620af198e54c3bbbac2bf60e64618f027 newValues = $.merge(msValues, [value]), selectableUl = $('#ms-'+ms.attr('id')+' .ms-selectable ul'), selectedUl = $('#ms-'+ms.attr('id')+' .ms-selection ul'), selectableLi = selectableUl.children('li[ms-value="'+value+'"]'); +<<<<<<< HEAD if (!selectableLi.attr('disabled')){ selectableLi.hide(); @@ -76,6 +82,17 @@ if (typeof ms.data('settings').afterSelect == 'function' && method != 'init') { ms.data('settings').afterSelect.call(this, value, text); } +======= + + selectableLi.hide(); + ms.val(newValues); + selectedLi.click(function(){ + ms.multiSelect('deselect', $(this).attr('ms-value')); + }); + selectedUl.append(selectedLi); + if (typeof ms.data('settings').afterSelect == 'function' && method != 'init') { + ms.data('settings').afterSelect.call(this, value, text); +>>>>>>> 46ec109620af198e54c3bbbac2bf60e64618f027 } } }, @@ -83,14 +100,19 @@ var ms = this, msValues = (ms.val() ? ms.val() : []), present = false, - newValues = $.map(msValues, function(e){ if(e != value){ return e; }else{ present = true}}); - + newValues = $.map(msValues, function(e){ if(e != value){ return e; }else{ present = true} return false;}); + if(present){ var selectableUl = $('#ms-'+ms.attr('id')+' .ms-selectable ul'), selectedUl = $('#ms-'+ms.attr('id')+' .ms-selection ul'), selectableLi = selectableUl.children('li[ms-value="'+value+'"]'), +<<<<<<< HEAD selectedLi = selectedUl.children('li[ms-value="'+value+'"]'); +======= + selectedLi = selectedUl.children('li[ms-value="'+value+'"]').detach(); + +>>>>>>> 46ec109620af198e54c3bbbac2bf60e64618f027 ms.val(newValues); selectableLi.show(); selectedLi.remove(); @@ -111,8 +133,8 @@ ms.multiSelect('deselect', $(this).val(), 'deselect_all'); }); } - } - + }; + $.fn.multiSelect = function(method){ if ( msMethods[method] ) { return msMethods[method].apply( this, Array.prototype.slice.call( arguments, 1 )); @@ -121,5 +143,6 @@ } else { if(console.log) console.log( 'Method ' + method + ' does not exist on jquery.multiSelect' ); } - } + return false; + }; })(jQuery);
\ No newline at end of file diff --git a/js/jquery.multi-select.min.js b/js/jquery.multi-select.min.js index d42012b..bb665d5 100644 --- a/js/jquery.multi-select.min.js +++ b/js/jquery.multi-select.min.js @@ -1,5 +1,9 @@ -(function(b){var g={init:function(a){this.settings={};if(a)this.settings=b.extend(this.settings,a);var c=this;c.hide();c.each(function(){var a=b(this),f=b('<div id="ms-'+a.attr("id")+'" class="ms-container"></div>').detach(),d=b('<div class="ms-selectable"></div>').detach(),h=b('<div class="ms-selection"></div>').detach(),i=b("<ul></ul>").detach(),g=b("<ul></ul>").detach();a.data("settings",c.settings);a.children("option").each(function(){var c=b('<li ms-value="'+b(this).val()+'">'+b(this).text()+ -"</li>").detach();c.click(function(){a.multiSelect("select",b(this).attr("ms-value"))});i.append(c)});c.settings.selectableHeader&&d.append(c.settings.selectableHeader);d.append(i);c.settings.selectedHeader&&h.append(c.settings.selectedHeader);h.append(g);f.append(d);f.append(h);a.after(f);a.children("option:selected").each(function(){a.multiSelect("select",b(this).val(),"init")})})},select:function(a,c){var e=this,f=e.val()?e.val():[],d=b.inArray(a,f),h=e.find('option[value="'+a+'"]').text();if(d== --1||c=="init"){var d=b('<li ms-value="'+a+'">'+h+"</li>").detach(),f=b.merge(f,[a]),g=b("#ms-"+e.attr("id")+" .ms-selectable ul"),j=b("#ms-"+e.attr("id")+" .ms-selection ul");g.children('li[ms-value="'+a+'"]').hide();e.val(f);d.click(function(){e.multiSelect("deselect",b(this).attr("ms-value"))});j.append(d);typeof e.data("settings").afterSelect=="function"&&c!="init"&&e.data("settings").afterSelect.call(this,a,h)}},deselect:function(a){var c=this.val()?this.val():[],e=!1,c=b.map(c,function(b){if(b!= -a)return b;else e=!0});if(e){var f=b("#ms-"+this.attr("id")+" .ms-selectable ul"),d=b("#ms-"+this.attr("id")+" .ms-selection ul"),f=f.children('li[ms-value="'+a+'"]'),d=d.children('li[ms-value="'+a+'"]').detach();this.val(c);f.show();d.remove();typeof this.data("settings").afterDeselect=="function"&&this.data("settings").afterDeselect.call(this,a,d.text())}},select_all:function(){var a=this;a.children("option").each(function(){a.multiSelect("select",b(this).val(),"select_all")})},deselect_all:function(){var a= -this;a.children("option").each(function(){a.multiSelect("deselect",b(this).val(),"deselect_all")})}};b.fn.multiSelect=function(a){if(g[a])return g[a].apply(this,Array.prototype.slice.call(arguments,1));else if(typeof a==="object"||!a)return g.init.apply(this,arguments);else console.log&&console.log("Method "+a+" does not exist on jquery.multiSelect")}})(jQuery);
\ No newline at end of file +(function($){var msMethods={'init':function(options){this.settings={};if(options){this.settings=$.extend(this.settings,options);} +var multiSelects=this;multiSelects.hide();multiSelects.each(function(){var ms=$(this);ms.attr('id',ms.attr('id')!=undefined?ms.attr('id'):'select'+((new Date()).getTime()));var container=$('<div id="ms-'+ms.attr('id')+'" class="ms-container"></div>').detach(),selectableContainer=$('<div class="ms-selectable"></div>').detach(),selectedContainer=$('<div class="ms-selection"></div>').detach(),selectableUl=$('<ul></ul>').detach(),selectedUl=$('<ul></ul>').detach();ms.data('settings',multiSelects.settings);ms.children('option').each(function(){var selectableLi=$('<li ms-value="'+$(this).val()+'" title="'+$(this).attr('title')+'">'+$(this).text()+'</li>').detach();selectableLi.click(function(){ms.multiSelect('select',$(this).attr('ms-value'));});selectableUl.append(selectableLi);});if(multiSelects.settings.selectableHeader){selectableContainer.append(multiSelects.settings.selectableHeader);} +selectableContainer.append(selectableUl);if(multiSelects.settings.selectedHeader){selectedContainer.append(multiSelects.settings.selectedHeader);} +selectedContainer.append(selectedUl);container.append(selectableContainer);container.append(selectedContainer);ms.after(container);ms.children('option:selected').each(function(){ms.multiSelect('select',$(this).val(),'init');});});},'select':function(value,method){var ms=this,msValues=(ms.val()?ms.val():[]),alreadyPresent=$.inArray(value,msValues),text=ms.find('option[value="'+value+'"]').text();title_attr=ms.find('option[value="'+value+'"]').attr('title');if(alreadyPresent==-1||method=='init'){var selectedLi=$('<li ms-value="'+value+'" title="'+title_attr+'">'+text+'</li>').detach(),newValues=$.merge(msValues,[value]),selectableUl=$('#ms-'+ms.attr('id')+' .ms-selectable ul'),selectedUl=$('#ms-'+ms.attr('id')+' .ms-selection ul'),selectableLi=selectableUl.children('li[ms-value="'+value+'"]');selectableLi.hide();ms.val(newValues);selectedLi.click(function(){ms.multiSelect('deselect',$(this).attr('ms-value'));});selectedUl.append(selectedLi);if(typeof ms.data('settings').afterSelect=='function'&&method!='init'){ms.data('settings').afterSelect.call(this,value,text);}}},'deselect':function(value){var ms=this,msValues=(ms.val()?ms.val():[]),present=false,newValues=$.map(msValues,function(e){if(e!=value){return e;}else{present=true}return false;});if(present){var selectableUl=$('#ms-'+ms.attr('id')+' .ms-selectable ul'),selectedUl=$('#ms-'+ms.attr('id')+' .ms-selection ul'),selectableLi=selectableUl.children('li[ms-value="'+value+'"]'),selectedLi=selectedUl.children('li[ms-value="'+value+'"]').detach();ms.val(newValues);selectableLi.show();selectedLi.remove();if(typeof ms.data('settings').afterDeselect=='function'){ms.data('settings').afterDeselect.call(this,value,selectedLi.text());}}},'select_all':function(){var ms=this;ms.children('option').each(function(){ms.multiSelect('select',$(this).val(),'select_all');});},'deselect_all':function(){var ms=this;ms.children('option').each(function(){ms.multiSelect('deselect',$(this).val(),'deselect_all');});}};$.fn.multiSelect=function(method){if(msMethods[method]){return msMethods[method].apply(this,Array.prototype.slice.call(arguments,1));}else if(typeof method==='object'||!method){return msMethods.init.apply(this,arguments);}else{if(console.log)console.log('Method '+method+' does not exist on jquery.multiSelect');} +return false;};})(jQuery);(function($){var msMethods={'init':function(options){this.settings={};if(options){this.settings=$.extend(this.settings,options);} +var multiSelects=this;multiSelects.hide();multiSelects.each(function(){var ms=$(this);ms.attr('id',ms.attr('id')!=undefined?ms.attr('id'):'select'+((new Date()).getTime()));var container=$('<div id="ms-'+ms.attr('id')+'" class="ms-container"></div>').detach(),selectableContainer=$('<div class="ms-selectable"></div>').detach(),selectedContainer=$('<div class="ms-selection"></div>').detach(),selectableUl=$('<ul></ul>').detach(),selectedUl=$('<ul></ul>').detach();ms.data('settings',multiSelects.settings);ms.children('option').each(function(){var selectableLi=$('<li ms-value="'+$(this).val()+'" title="'+$(this).attr('title')+'">'+$(this).text()+'</li>').detach();selectableLi.click(function(){ms.multiSelect('select',$(this).attr('ms-value'));});selectableUl.append(selectableLi);});if(multiSelects.settings.selectableHeader){selectableContainer.append(multiSelects.settings.selectableHeader);} +selectableContainer.append(selectableUl);if(multiSelects.settings.selectedHeader){selectedContainer.append(multiSelects.settings.selectedHeader);} +selectedContainer.append(selectedUl);container.append(selectableContainer);container.append(selectedContainer);ms.after(container);ms.children('option:selected').each(function(){ms.multiSelect('select',$(this).val(),'init');});});},'select':function(value,method){var ms=this,msValues=(ms.val()?ms.val():[]),alreadyPresent=$.inArray(value,msValues),text=ms.find('option[value="'+value+'"]').text();title_attr=ms.find('option[value="'+value+'"]').attr('title');if(alreadyPresent==-1||method=='init'){var selectedLi=$('<li ms-value="'+value+'" title="'+title_attr+'">'+text+'</li>').detach(),newValues=$.merge(msValues,[value]),selectableUl=$('#ms-'+ms.attr('id')+' .ms-selectable ul'),selectedUl=$('#ms-'+ms.attr('id')+' .ms-selection ul'),selectableLi=selectableUl.children('li[ms-value="'+value+'"]');selectableLi.hide();ms.val(newValues);selectedLi.click(function(){ms.multiSelect('deselect',$(this).attr('ms-value'));});selectedUl.append(selectedLi);if(typeof ms.data('settings').afterSelect=='function'&&method!='init'){ms.data('settings').afterSelect.call(this,value,text);}}},'deselect':function(value){var ms=this,msValues=(ms.val()?ms.val():[]),present=false,newValues=$.map(msValues,function(e){if(e!=value){return e;}else{present=true}return false;});if(present){var selectableUl=$('#ms-'+ms.attr('id')+' .ms-selectable ul'),selectedUl=$('#ms-'+ms.attr('id')+' .ms-selection ul'),selectableLi=selectableUl.children('li[ms-value="'+value+'"]'),selectedLi=selectedUl.children('li[ms-value="'+value+'"]').detach();ms.val(newValues);selectableLi.show();selectedLi.remove();if(typeof ms.data('settings').afterDeselect=='function'){ms.data('settings').afterDeselect.call(this,value,selectedLi.text());}}},'select_all':function(){var ms=this;ms.children('option').each(function(){ms.multiSelect('select',$(this).val(),'select_all');});},'deselect_all':function(){var ms=this;ms.children('option').each(function(){ms.multiSelect('deselect',$(this).val(),'deselect_all');});}};$.fn.multiSelect=function(method){if(msMethods[method]){return msMethods[method].apply(this,Array.prototype.slice.call(arguments,1));}else if(typeof method==='object'||!method){return msMethods.init.apply(this,arguments);}else{if(console.log)console.log('Method '+method+' does not exist on jquery.multiSelect');} +return false;};})(jQuery);
\ No newline at end of file |