我正在使用一个功能来打开面板。但是,我发现这与#index页面具体相关。有没有办法设置它,所以它链接到我的网站中的所有页面。在阅读各种帖子后,我尝试以几种不同的方式添加data-role = page,但无济于事。
/*Open panel on page load */
$(document).on('pageshow', '#index', function(){
$( "#menupanel" ).panel( "open");
})
尝试
$(document).delegate('[data-role="page"]', 'pageshow', function () {...
我认为从http://demos.jquerymobile.com/1.4.1/panel-swipe-open/#&ui-state=dialog
复制代码后我也会遇到同样的问题$( document ).on( "pagecreate", "#index", function() {
$( document ).on( "swipeleft swiperight", "#index", function( e ) {
// We check if there is no open panel on the page because otherwise
// a swipe to close the left panel would also open the right panel (and v.v.).
// We do this by checking the data that the framework stores on the page element (panel: open).
if ( $( ".ui-page-active" ).jqmData( "panel" ) !== "open" ) {
if ( e.type === "swipeleft" ) {
$( "#right-panel" ).panel( "open" );
} else if ( e.type === "swiperight" ) {
$( "#left-panel" ).panel( "open" );
}
}
});
});
答案 0 :(得分:0)
它被绑定到索引页面,因为您正在指定它。只需将其删除并绑定到" global" pageshow。现在,每次pageshow事件触发文档中的任何位置时,您的面板都将打开。
/*Open panel on page show*/
$(document).on('pageshow',function(){
$( "#menupanel" ).panel( "open");
});
此代码:
$( document ).on( "pagecreate", "#index", ...
...绑定到主索引页面的create事件,它在pageshow之前触发,事实上,如果在JQM初始化页面之前触发了。此示例是添加用于打开面板的滑动功能。
你想要吗?
此外,只有一个FYI .delegate()已被jQuery中的.on()替换:
从jQuery 1.7开始,.delegate()已被.on()方法取代。但是,对于早期版本,它仍然是使用事件委派的最有效方法。