From c4635a741ee51a7efbb95e11edc2906224470e9b Mon Sep 17 00:00:00 2001 From: jlukic Date: Thu, 13 Nov 2014 14:29:07 -0500 Subject: [PATCH] Fix related to #1199, issue with using scrollbar causing dropdown to close --- src/definitions/modules/dropdown.js | 31 ++++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/definitions/modules/dropdown.js b/src/definitions/modules/dropdown.js index 3a057f1a3..85447555c 100644 --- a/src/definitions/modules/dropdown.js +++ b/src/definitions/modules/dropdown.js @@ -263,8 +263,14 @@ $.fn.dropdown = function(parameters) { } }, touchEvents: function() { - module.debug('Touch device detected binding touch events'); - if( !module.is.searchSelection() ) { + module.debug('Touch device detected binding additional touch events'); + if( module.is.searchSelection() ) { + $module + .on('touchstart' + eventNamespace, selector.menu, module.event.menu.mousedown) + .on('touchend' + eventNamespace, selector.menu, module.event.menu.mouseup) + ; + } + else { $module .on('touchstart' + eventNamespace, module.event.test.toggle) ; @@ -278,8 +284,10 @@ $.fn.dropdown = function(parameters) { module.verbose('Mouse detected binding mouse events'); if( module.is.searchSelection() ) { $module - .on('focus' + eventNamespace, selector.search, module.event.searchFocus) - .on('blur' + eventNamespace, selector.search, module.event.searchBlur) + .on('mousedown' + eventNamespace, selector.menu, module.event.menu.mousedown) + .on('mouseup' + eventNamespace, selector.menu, module.event.menu.mouseup) + .on('focus' + eventNamespace, selector.search, module.event.searchFocus) + .on('blur' + eventNamespace, selector.search, module.event.searchBlur) ; } else { @@ -301,14 +309,12 @@ $.fn.dropdown = function(parameters) { } $module .on('mousedown' + eventNamespace, module.event.mousedown) - .on('mouseup' + eventNamespace, module.event.mouseup) - .on('focus' + eventNamespace, module.event.focus) - .on('blur' + eventNamespace, module.event.blur) + .on('mouseup' + eventNamespace, module.event.mouseup) + .on('focus' + eventNamespace, module.event.focus) + .on('blur' + eventNamespace, module.event.blur) ; } $module - .on('mousedown' + eventNamespace, selector.item, module.event.item.mousedown) - .on('mouseup' + eventNamespace, selector.item, module.event.item.mouseup) .on('mouseenter' + eventNamespace, selector.item, module.event.item.mouseenter) .on('mouseleave' + eventNamespace, selector.item, module.event.item.mouseleave) .on('click' + eventNamespace, selector.item, module.event.item.click) @@ -531,14 +537,15 @@ $.fn.dropdown = function(parameters) { } }, - item: { - + menu: { mousedown: function() { itemActivated = true; }, mouseup: function() { itemActivated = false; - }, + } + }, + item: { mouseenter: function(event) { var $currentMenu = $(this).find(selector.menu),