Browse Source

Finally fixes #2058, forceSelection shouldnt occur on empty query. minor formatting

pull/2755/merge
Jack Lukic 9 years ago
parent
commit
7a93ac22cb
2 changed files with 16 additions and 8 deletions
  1. 1
      RELEASE-NOTES.md
  2. 23
      src/definitions/modules/dropdown.js

1
RELEASE-NOTES.md

@ -33,6 +33,7 @@
- **Modal** - Increased `close` specificity, modal will now only close on `> .close` #2736
- **Transition** - Transition callbacks now all have the correct `this` set. #2758
- **Dropdown** - Fix `left menu` inside `ui menu` appearing horizontally #2778
- **Dropdown** - `forceSelection` no longer sets current value in search selection when current query is blank #2058
**Additional Bugs**
- **Build Tools** - Fixes issue on `win` platform where packaged theme would not correctly update when using watch due to regExp not matching windows path separators.

23
src/definitions/modules/dropdown.js

@ -674,7 +674,7 @@ $.fn.dropdown = function(parameters) {
beginsWithRegExp = new RegExp('^' + escapedTerm, 'igm')
;
// avoid loop if we're matching nothing
if(searchTerm === '') {
if( !module.has.query() ) {
$results = $item;
}
else {
@ -771,7 +771,7 @@ $.fn.dropdown = function(parameters) {
: $activeItem,
hasSelected = ($selectedItem.size() > 0)
;
if(hasSelected) {
if( hasSelected && module.has.query() ) {
module.debug('Forcing partial selection to selected item', $selectedItem);
module.event.item.click.call($selectedItem);
}
@ -909,7 +909,9 @@ $.fn.dropdown = function(parameters) {
touch: function(event) {
module.determine.eventOnElement(event, function() {
if(event.type == 'touchstart') {
module.timer = setTimeout(module.hide, settings.delay.touch);
module.timer = setTimeout(function() {
module.hide();
}, settings.delay.touch);
}
else if(event.type == 'touchmove') {
clearTimeout(module.timer);
@ -959,15 +961,17 @@ $.fn.dropdown = function(parameters) {
}, settings.delay.hide);
}
},
touchend: function() {
},
click: function (event) {
var
$choice = $(this),
$target = (event)
$choice = $(this),
$target = (event)
? $(event.target)
: $(''),
$subMenu = $choice.find(selector.menu),
text = module.get.choiceText($choice),
value = module.get.choiceValue($choice, text),
$subMenu = $choice.find(selector.menu),
text = module.get.choiceText($choice),
value = module.get.choiceValue($choice, text),
hasSubMenu = ($subMenu.length > 0),
isBubbledEvent = ($subMenu.find($target).length > 0)
;
@ -2656,6 +2660,9 @@ $.fn.dropdown = function(parameters) {
allResultsFiltered: function() {
return ($item.filter(selector.unselectable).length === $item.length);
},
query: function() {
return (module.get.query() != '');
},
value: function(value) {
var
values = module.get.values(),

Loading…
Cancel
Save