Browse Source

Update dropdown from next

pull/2016/head
jlukic 10 years ago
parent
commit
802dc97948
2 changed files with 15 additions and 5 deletions
  1. 2
      RELEASE-NOTES.md
  2. 18
      src/definitions/modules/dropdown.js

2
RELEASE-NOTES.md

@ -8,6 +8,8 @@ This version backports several bugs that are being packed in `2.0` to `1.x`
**Bugs** **Bugs**
- **Card** - Fixes dimmer background shorthand property causes transparent dimmer in minified version - **Card** - Fixes dimmer background shorthand property causes transparent dimmer in minified version
- **Dimmer** - Fixed `variation` setting not working correctly - **Dimmer** - Fixed `variation` setting not working correctly
- **Dropdown** - `onchange` no longer fires when reselecting same value
- **Dropdown** - Dropdown init on `select` now returns `ui dropdown` created for chaining
### Version 1.11.3-4 - March 6, 2015 ### Version 1.11.3-4 - March 6, 2015

18
src/definitions/modules/dropdown.js

@ -31,7 +31,7 @@ $.fn.dropdown = function(parameters) {
; ;
$allModules $allModules
.each(function(index) {
.each(function() {
var var
settings = ( $.isPlainObject(parameters) ) settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.dropdown.settings, parameters) ? $.extend(true, {}, $.fn.dropdown.settings, parameters)
@ -210,16 +210,17 @@ $.fn.dropdown = function(parameters) {
.prependTo($module) .prependTo($module)
; ;
} }
module.setup.reference();
module.refresh();
}, },
reference: function() { reference: function() {
var var
index = $allModules.index($module),
$firstModules, $firstModules,
$lastModules $lastModules
; ;
module.debug('Dropdown behavior was called on select, replacing with closest dropdown'); module.debug('Dropdown behavior was called on select, replacing with closest dropdown');
// replace module reference // replace module reference
$module = $module.closest(selector.dropdown);
$module = $module.parent(selector.dropdown);
module.refresh(); module.refresh();
// adjust all modules // adjust all modules
$firstModules = $allModules.slice(0, index); $firstModules = $allModules.slice(0, index);
@ -471,6 +472,9 @@ $.fn.dropdown = function(parameters) {
module.event.item.click.call($selectedItem); module.event.item.click.call($selectedItem);
module.remove.filteredItem(); module.remove.filteredItem();
} }
else {
module.hide();
}
}, },
event: { event: {
@ -964,19 +968,23 @@ $.fn.dropdown = function(parameters) {
module.verbose('Ambiguous dropdown value using strict type check', $choice, value); module.verbose('Ambiguous dropdown value using strict type check', $choice, value);
if( optionValue === value ) { if( optionValue === value ) {
$selectedItem = $(this); $selectedItem = $(this);
return true;
} }
else if( !$selectedItem && optionText === value ) { else if( !$selectedItem && optionText === value ) {
$selectedItem = $(this); $selectedItem = $(this);
return true;
} }
} }
else { else {
if( optionValue == value ) { if( optionValue == value ) {
module.verbose('Found select item by value', optionValue, value); module.verbose('Found select item by value', optionValue, value);
$selectedItem = $(this); $selectedItem = $(this);
return true;
} }
else if( !$selectedItem && optionText == value ) { else if( !$selectedItem && optionText == value ) {
module.verbose('Found select item by text', optionText, value); module.verbose('Found select item by text', optionText, value);
$selectedItem = $(this); $selectedItem = $(this);
return true;
} }
} }
}) })
@ -1179,7 +1187,7 @@ $.fn.dropdown = function(parameters) {
selectedText, selectedText,
selectedValue selectedValue
; ;
if($selectedItem) {
if($selectedItem && !$selectedItem.hasClass(className.active) ) {
module.debug('Setting selected menu item to', $selectedItem); module.debug('Setting selected menu item to', $selectedItem);
module.remove.activeItem(); module.remove.activeItem();
module.remove.selectedItem(); module.remove.selectedItem();
@ -1559,7 +1567,7 @@ $.fn.dropdown = function(parameters) {
}); });
} }
clearTimeout(module.performance.timer); clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 100);
module.performance.timer = setTimeout(module.performance.display, 500);
}, },
display: function() { display: function() {
var var

Loading…
Cancel
Save