diff options
-rw-r--r-- | core/js/multiselect.js | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/core/js/multiselect.js b/core/js/multiselect.js index 2210df3bc7a..158bc0ca0c0 100644 --- a/core/js/multiselect.js +++ b/core/js/multiselect.js @@ -8,7 +8,7 @@ * @param 'labels' The corresponding labels to show for the checked items. * @param 'oncheck' Callback function which will be called when a checkbox/radiobutton is selected. If the function returns false the input will be unchecked. * @param 'onuncheck' @see 'oncheck'. - * @param 'singleSelect' If true radiobuttons will be used instead of checkboxes. + * @param 'singleSelect' If true radiobuttons will be used instead of checkboxes. */ (function( $ ){ var multiSelectId=-1; @@ -27,6 +27,7 @@ 'onuncheck':false, 'minWidth': 'default;' }; + var slideDuration = 200; $(this).attr('data-msid', multiSelectId); $.extend(settings,options); $.each(this.children(),function(i,option) { @@ -64,16 +65,16 @@ var self = this; self.menuDirection = 'down'; button.click(function(event){ - + var button=$(this); if(button.parent().children('ul').length>0) { if(self.menuDirection === 'down') { - button.parent().children('ul').slideUp(400,function() { + button.parent().children('ul').slideUp(slideDuration,function() { button.parent().children('ul').remove(); button.removeClass('active down'); }); } else { - button.parent().children('ul').fadeOut(400,function() { + button.parent().children('ul').fadeOut(slideDuration,function() { button.parent().children('ul').remove(); button.removeClass('active up'); }); @@ -81,7 +82,7 @@ return; } var lists=$('ul.multiselectoptions'); - lists.slideUp(400,function(){ + lists.slideUp(slideDuration,function(){ lists.remove(); $('div.multiselect').removeClass('active'); button.addClass('active'); @@ -150,7 +151,7 @@ settings.labels.splice(index,1); } var oldWidth=button.width(); - button.children('span').first().text(settings.labels.length > 0 + button.children('span').first().text(settings.labels.length > 0 ? settings.labels.join(', ') : settings.title); var newOuterWidth=Math.max((button.outerWidth()-2),settings.minOuterWidth)+'px'; @@ -221,7 +222,7 @@ select.append(option); li.prev().children('input').prop('checked', true).trigger('change'); button.parent().data('preventHide',false); - button.children('span').first().text(settings.labels.length > 0 + button.children('span').first().text(settings.labels.length > 0 ? settings.labels.join(', ') : settings.title); if(self.menuDirection === 'up') { @@ -242,7 +243,7 @@ }); list.append(li); } - + var doSort = function(list, selector) { var rows = list.find('li'+selector).get(); @@ -276,14 +277,14 @@ }); list.addClass('down'); button.addClass('down'); - list.slideDown(); + list.slideDown(slideDuration); } else { list.css('max-height', $(document).height()-($(document).height()-(pos.top)+50)+'px'); list.css({ top:pos.top - list.height(), left:pos.left+3, width:(button.outerWidth()-2)+'px' - + }); list.detach().insertBefore($(this)); list.addClass('up'); @@ -299,19 +300,19 @@ if(!button.parent().data('preventHide')) { // How can I save the effect in a var? if(self.menuDirection === 'down') { - button.parent().children('ul').slideUp(400,function() { + button.parent().children('ul').slideUp(slideDuration,function() { button.parent().children('ul').remove(); button.removeClass('active down'); }); } else { - button.parent().children('ul').fadeOut(400,function() { + button.parent().children('ul').fadeOut(slideDuration,function() { button.parent().children('ul').remove(); button.removeClass('active up'); }); } } }); - + return span; }; })( jQuery ); |