From f1f84ce77de10932280ad205fee754e70ded37e9 Mon Sep 17 00:00:00 2001 From: "jblas@adobe.com" Date: Wed, 6 Oct 2010 00:22:25 -0700 Subject: [PATCH 1/2] Fixed #107 Back button for customSelect listbox causes navigate to previous page. - Added return false to the click handler attached to the back button in the select code. - Modified the selectors for ui-back in mobilize so they only find back buttons in ui-header that are direct descendants of the ui-page. --- js/jQuery.mobile.forms.select.js | 1 + js/jQuery.mobile.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/js/jQuery.mobile.forms.select.js b/js/jQuery.mobile.forms.select.js index 14735673..ef7ae301 100644 --- a/js/jQuery.mobile.forms.select.js +++ b/js/jQuery.mobile.forms.select.js @@ -136,6 +136,7 @@ $.fn.customSelect = function(options){ //back button listbox.find('.ui-listbox-header a').click(function(){ select.trigger('hidemenu'); + return false; }); diff --git a/js/jQuery.mobile.js b/js/jQuery.mobile.js index 09de767b..1f6f42e5 100644 --- a/js/jQuery.mobile.js +++ b/js/jQuery.mobile.js @@ -334,9 +334,9 @@ //add back buttons to headers that don't have them // FIXME make that optional? // TODO don't do that on devices that have a native back button? - var backBtn = $el.find('.ui-header a.ui-back'); + var backBtn = $el.find('.ui-page > .ui-header a.ui-back'); if(!backBtn.length){ - backBtn = jQuery('').appendTo($el.find('.ui-header')); + backBtn = jQuery('').appendTo($el.find('.ui-page > .ui-header')); } //buttons from links in headers,footers,bars, or with data-role From 8eae0124f3fc6457ef50c71cd9c912594972b91f Mon Sep 17 00:00:00 2001 From: "jblas@adobe.com" Date: Wed, 6 Oct 2010 01:01:23 -0700 Subject: [PATCH 2/2] My previous checkin for Issue 107 busted *all* back buttons. This checkin fixes things. - Modified back button selectors in mobilize so they must be under a ui-header but not under a ui-listbox-header. This seems to keep everything working and allow the back button on customSelect listboxes to work as expected. --- js/jQuery.mobile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/jQuery.mobile.js b/js/jQuery.mobile.js index 1f6f42e5..d9c3f71e 100644 --- a/js/jQuery.mobile.js +++ b/js/jQuery.mobile.js @@ -334,9 +334,9 @@ //add back buttons to headers that don't have them // FIXME make that optional? // TODO don't do that on devices that have a native back button? - var backBtn = $el.find('.ui-page > .ui-header a.ui-back'); + var backBtn = $el.find('.ui-header:not(.ui-listbox-header) a.ui-back'); if(!backBtn.length){ - backBtn = jQuery('').appendTo($el.find('.ui-page > .ui-header')); + backBtn = jQuery('').appendTo($el.find('.ui-header:not(.ui-listbox-header)')); } //buttons from links in headers,footers,bars, or with data-role