最新的 jQuery Mobile API 文档说要使用
$( ".selector" ).on( "panelopen", function( event, ui ) {} );
你能试试吗?它可以使用该on()
方法而不是旧bind()
方法来工作。此外,也许您可以将溢出更改绑定到 body 的子元素而不是 body 元素。如果不查看更多代码,很难给出更具体的解决方案。
http://api.jquerymobile.com/panel/#event-open
更新
这是带有工作解决方案的 jsbin 的链接:http: //jsbin.com/azavup/2/
使用的确切JS如下:
$( document ).on( "pageinit", "#page1", function( event ) {
$( "#defaultpanel" ).on( "panelopen", function( event, ui ) {
//console.log("i am open");
$('body').css("overflow", "hidden");
} );
$( "#defaultpanel" ).on( "panelclose", function( event, ui ) {
//console.log("i am close");
$('body').css("overflow", "auto");
} );
});
因此,也许您只需将panelopen
/panelclose
绑定更改为实际的面板选择器,而不是document
. 这样可行。