2

jqmを使用してパネルを作成しましたが、開いているときにandoird電話の戻るボタンを使用して閉じることができるようにしたいと思います。

今のところ、パネルが開いているときに戻るボタンを使用すると、パネルを閉じるだけでなく、前のページに移動します。

これを行う方法はありますか?パネルを含む私のhtmlページは次のとおりです。

<div id="welcome-page" data-role="page">    
    <a data-role="button" id="open-panel" data-theme="a">Enquiries</a>
</div>  

パネルのjsファイルの構造は次のとおりです。

$(document).on('pagebeforecreate', '#welcome-page', function(){                
    $('<div>').attr({'id':'mypanel','data-role':'panel','data-position':'right','data-display':'overlay'}).appendTo($(this));
    $(document).on('click', '#open-panel', function(){   
        $.mobile.activePage.find('#mypanel').panel("open");
        populateContactForm('args');
        ...
    }); 
    $(document).on('change', '#mypanel input[type=radio]', function(){ 
    ...
    });
});


$(document).on('pagebeforeshow', function() {   
  $(document).bind('keydown', function(event) {
    alert(event.keyCode);
    if (event.keyCode == 27) {
      event.preventDefault();
      $('#mypanel').panel("close");
    }
  });
});

ありがとう

4

1 に答える 1

1

次のように、javascript でハードウェアの [戻る] ボタンをキャプチャできます。

$(document).bind('keydown', function(event) {
  if (event.keyCode == 27) {
    // Prevent default (disable the back button behavior)
    event.preventDefault();

    // Your code to close panel or show another page or whatever...
    $( '#mypanel' ).panel( "close" );
  }
});
于 2013-08-17T08:49:58.947 に答える