Skip to content

Commit 53392bc

Browse files
author
scottjehl
committed
Merge branch 'issue_723' of https://github.com/ehynds/jquery-mobile into ehynds-issue_723
2 parents 015a361 + edfafe0 commit 53392bc

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

js/jquery.mobile.forms.select.js

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ $.widget( "mobile.selectmenu", $.mobile.widget, {
7474
.appendTo( $.mobile.pageContainer )
7575
.page(),
7676

77-
menuPageContent = menuPage.find( ".ui-content" ),
77+
menuPageContent = menuPage.find( ".ui-content" ),
78+
79+
menuPageClose = menuPage.find( ".ui-header a" ),
7880

7981
screen = $( "<div>", {"class": "ui-selectmenu-screen ui-screen-hidden"})
8082
.appendTo( thisPage ),
@@ -196,9 +198,15 @@ $.widget( "mobile.selectmenu", $.mobile.widget, {
196198
});
197199

198200
//events on "screen" overlay + close button
199-
screen.add( headerClose ).click(function(event){
201+
screen.add( headerClose ).add( menuPageClose ).click(function(event){
200202
self.close();
201203
event.preventDefault();
204+
205+
// if the dialog's close icon was clicked, prevent the dialog's close
206+
// handler from firing. selectmenu's should take precedence
207+
if( $.contains(menuPageClose[0], event.target) ){
208+
event.stopImmediatePropagation();
209+
}
202210
});
203211
},
204212

@@ -393,19 +401,17 @@ $.widget( "mobile.selectmenu", $.mobile.widget, {
393401
function focusButton(){
394402
setTimeout(function(){
395403
self.button.focus();
404+
396405
//remove active class from button
397406
self.button.removeClass( $.mobile.activeBtnClass );
398407
}, 40);
399408

400409
self.listbox.removeAttr('style').append( self.list );
401410
}
402411

403-
if(self.menuType == "page"){
412+
if(self.menuType == "page"){
404413
$.mobile.changePage([self.menuPage,self.thisPage], 'pop', true, false);
405-
self.menuPage.one("pagehide",function(){
406-
focusButton();
407-
//return false;
408-
});
414+
self.menuPage.one("pagehide", focusButton);
409415
}
410416
else{
411417
self.screen.addClass( "ui-screen-hidden" );

0 commit comments

Comments
 (0)