From 812e4c6978fff53e85c20375f258bedcd3f33984 Mon Sep 17 00:00:00 2001 From: scottjehl Date: Tue, 9 Nov 2010 19:10:54 -0500 Subject: [PATCH] fixed support for back button closing of dialogs, utilizing new $.mobile.updateHash method. Fixes #412 --- js/jquery.mobile.dialog.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/js/jquery.mobile.dialog.js b/js/jquery.mobile.dialog.js index 16947814..b48249b2 100644 --- a/js/jquery.mobile.dialog.js +++ b/js/jquery.mobile.dialog.js @@ -10,8 +10,9 @@ $.widget( "mobile.dialog", $.mobile.widget, { _create: function(){ var self = this, $el = self.element, + $prevPage = $.activePage, $closeBtn = $('Close'); - + $el.delegate("a, submit", "click submit", function(e){ if( e.type == "click" && ( $(e.target).closest('[data-back]') || $(e.target).closest($closeBtn) ) ){ self.close(); @@ -38,10 +39,20 @@ $.widget( "mobile.dialog", $.mobile.widget, { .find('.ui-content,[data-role=footer]') .last() .addClass('ui-corner-bottom ui-overlay-shadow'); + + $(window).bind('hashchange',function(){ + if( $el.is('.ui-page-active') ){ + self.close(); + $el.bind('pagehide',function(){ + $.mobile.updateHash( $prevPage.attr('id'), true); + }); + } + }); }, + close: function(){ - $.changePage([this.element, $.activePage], undefined, true ); + $.changePage([this.element, $.activePage], undefined, true, true ); } }); })( jQuery ); \ No newline at end of file