r2739 - added support for both mouse interaction styles:
Author: scottjehl
Date: Fri Jun 12 14:47:51 2009
New Revision: 2739
Modified:
branches/labs/selectmenu/ui.selectmenu.js
Log:
added support for both mouse interaction styles:
- mousedown-drag-mouseup
or
- click-drag-click
Modified: branches/labs/selectmenu/ui.selectmenu.js
==============================================================================
--- branches/labs/selectmenu/ui.selectmenu.js (original)
+++ branches/labs/selectmenu/ui.selectmenu.js Fri Jun 12 14:47:51 2009
@@ -42,9 +42,15 @@
//click toggle for menu visibility
this.newelement
- .bind('click', function(){
+ .bind('mousedown', function(){
self._closeOthers();
- self._toggle();
+ self.open();
+ //make sure a click won't open/close instantly
+ self._safemouseup = false;
+ setTimeout(function(){self._safemouseup = true;}, 100);
+ return false;
+ })
+ .bind('click',function(){
return false;
})
.keydown(function(event){
@@ -105,6 +111,10 @@
.data('optionClasses', s_options[i].classes)
.mouseup(function(){
self.value($(this).data('index'));
+ if(self._safemouseup){
+ self.close(true);
+ }
+ return false;
})
.bind('mouseover focus', function(){
$(this).parent().find('.ui-selectmenu-item-selected').addClass(activeClass);
@@ -159,10 +169,6 @@
//transfer menu click to menu button
this.list
- .click(function(){
- self.newelement.trigger('click'); // (should be abstracted out)
- return false;
- })
.keydown(function(event){
var ret = true;
@@ -232,6 +238,8 @@
.attr('for',this.element.attr('id'))
.unbind('click');
},
+
+ _safemouseup: true,
_prevChar: ['',0],