summaryrefslogtreecommitdiffstats
path: root/js/jquery.multi-select.js
diff options
context:
space:
mode:
authorMichael Bensoussan <pada51@gmail.com>2011-09-29 12:28:16 +0200
committerMichael Bensoussan <pada51@gmail.com>2011-09-29 12:28:16 +0200
commit4a468239face55202f9c1fb7dbbbba453f894519 (patch)
treea6e0cc12269e5a562b9fdde0c8a329a504ec22f4 /js/jquery.multi-select.js
parent2168a06162cdeb1f3224bbb4d2a2ea4651441803 (diff)
downloadmulti-select-4a468239face55202f9c1fb7dbbbba453f894519.zip
multi-select-4a468239face55202f9c1fb7dbbbba453f894519.tar.gz
multi-select-4a468239face55202f9c1fb7dbbbba453f894519.tar.bz2
initial commit for keepOrder option - buggy
Diffstat (limited to 'js/jquery.multi-select.js')
-rw-r--r--js/jquery.multi-select.js38
1 files changed, 36 insertions, 2 deletions
diff --git a/js/jquery.multi-select.js b/js/jquery.multi-select.js
index b6c91b0..1e7c542 100644
--- a/js/jquery.multi-select.js
+++ b/js/jquery.multi-select.js
@@ -3,12 +3,18 @@
'init' : function(options){
this.settings = {
disabledClass : 'disabled',
- emptyArray : false
+ emptyArray : false,
+ keepOrder : false
};
if(options) {
this.settings = $.extend(this.settings, options);
}
+ if (this.settings.keepOrder) {
+ console.log(this.settings.keepOrder);
+ console.log(this);
+ }
+
var multiSelects = this;
multiSelects.hide();
@@ -109,7 +115,35 @@
selectedLi.click(function(){
ms.multiSelect('deselect', $(this).attr('ms-value'));
});
- selectedUl.append(selectedLi);
+
+ var selectedUlLis = selectedUl.children('.ms-elem-selected');
+ console.log(ms.data('settings').keepOrder);
+ if (method != 'init' && ms.data('settings').keepOrder &&
+ selectedUlLis.length > 0) {
+
+ var getIndexOf = function(value) {
+ return($.inArray(value,
+ $.map($("#ms-simpleCountries .ms-elem-selectable"), function(e, i){
+ return($(e).attr("ms-value"))
+ }
+ )));
+ }
+ var index = getIndexOf(selectedLi.attr('ms-value'));
+
+ if (index == 0)
+ selectedUl.prepend(selectedLi);
+ else {
+ for (i = index - 1; i >= 0; i--){
+ if (selectedUlLis[i] && getIndexOf($(selectedUlLis[i]).attr('ms-value')) < index) {
+ $(selectedUlLis[i]).after(selectedLi);
+ break;
+ }
+ }
+ }
+ } else {
+ selectedUl.append(selectedLi);
+ }
+
if (ms.find("option[value='']")){
ms.find("option[value='']").removeAttr('selected');
}