jQuery Mobile Panel无法正常运行

尼克克斯

我在单个页面中创建了多个div滑动,因此页面保持不变,但div被更改了。使用了jQuery移动页面滑动的帮助,并进行了一些自定义。div滑动完全正常,但是我创建了一个面板,每当我从第一div转到第二div再回到第一div时,该面板都无法正常工作。请帮助我面板。这是我的代码:-

<!DOCTYPE html> 
<html>
<head>
    <title>Index</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="jquery/jquery.mobile-1.4.5.min.css" />
    <link rel="stylesheet" href="css/style.css" />
    <script src="jquery/jquery.min.js"></script>
    <script src="js/swipe-page.js"></script>
    <script src="jquery/jquery.mobile-1.4.5.min.js"></script>
</head>

<body>
        <div id="header" data-role="header" data-id="header" data-position="fixed" data-tap-toggle="false">
            <h1>Swipe left or right</h1>
            <a href="#mypanel" data-icon="bars" data-iconpos="notext" data-shadow="false" data-iconshadow="false" class="ui-nodisc-icon">Open left panel</a>
            <!-- <div data-role="navbar">
                <ul>
                    <li><a href="index.html" data-icon="grid" class="ui-btn-active">News</a></li>
                    <li><a href="market.html" data-icon="star">Market</a></li>
                    <li><a href="#" data-icon="gear">Announcement</a></li>
                    <li><a href="#" data-icon="comment">Portfolio</a></li>
                </ul>
            </div> --><!-- /navbar -->
        </div><!-- /header -->

        <div data-role="page" id="index" class="demo-page" data-title="Index" data-dom-cache="true" data-theme="a" data-next="market">
            <div role="main" class="ui-content">
                <h1>Div 1</h1>
            </div><!-- /content -->
            <div data-role="panel" id="mypanel" data-theme="a" data-display="overlay" data-position="left" >
                <ul data-role="listview">
                    <li data-icon="delete"><a href="#" data-rel="close">Close menu</a></li>
                    <li><a href="#panel-fixed-page2">Accordion</a></li>
                    <li><a href="#panel-fixed-page2">Ajax Navigation</a></li>
                    <li><a href="#panel-fixed-page2">Autocomplete</a></li>
                    <li><a href="#panel-fixed-page2">Buttons</a></li>
                    <li><a href="#panel-fixed-page2">Checkboxes</a></li>
                    <li><a href="#panel-fixed-page2">Collapsibles</a></li>
                    <li><a href="#panel-fixed-page2">Controlgroup</a></li>
                </ul>
            </div><!-- /panel -->
        </div><!-- /page -->

        <div  data-role="page" id="market" class="demo-page" data-title="Market" data-dom-cache="true" data-theme="a" data-prev="index">
            <div role="main" class="ui-content">
                <h1>Div 2</h1>
            </div><!-- /content -->
            <div data-role="panel" id="mypanel" data-theme="a" data-display="overlay" data-position="left">
                <ul data-role="listview">
                    <li data-icon="delete"><a href="#" data-rel="close">Close menu</a></li>
                    <li><a href="#panel-fixed-page2">Accordion</a></li>
                    <li><a href="#panel-fixed-page2">Ajax Navigation</a></li>
                    <li><a href="#panel-fixed-page2">Autocomplete</a></li>
                    <li><a href="#panel-fixed-page2">Buttons</a></li>
                    <li><a href="#panel-fixed-page2">Checkboxes</a></li>
                    <li><a href="#panel-fixed-page2">Collapsibles</a></li>
                    <li><a href="#panel-fixed-page2">Controlgroup</a></li>
                </ul>
            </div><!-- /panel -->
        </div><!-- /page -->

        <div id="footer" data-id="footer" data-position="fixed" data-tap-toggle="false">
            <div data-role="navbar">
                <ul>
                    <li><a href="#">Latest News</a></li>
                    <li><a href="#">Featured News</a></li>
                    <li><a href="#">Most Read</a></li>
                </ul>
            </div><!-- /navbar -->
        </div><!-- /footer -->
</body>
</html>

用于div滑动的javascript是:-

$(document).on('pageinit', function(event){
    $('div.ui-page').on("swipeleft", function () {
        var nextpage = $(this).next('div[data-role="page"]');
        if (nextpage.length > 0) {
            $.mobile.changePage(nextpage, "slide", false, true);
        }
    });

    $('div.ui-page').on("swiperight", function () {
        var prevpage = $(this).prev('div[data-role="page"]');
        if (prevpage.length > 0) {
          $.mobile.changePage(prevpage, { transition: "slide", reverse: true }, true, true);
        }
    });
});
奥马尔

您在两个面板上都使用了相同的ID,这是错误的。为每个面板指定不同的ID,或使用外部面板(例如工具栏)(页眉/页脚)。

将面板div放在页面div之外,然后手动对其进行初始化。

<!-- panel -->
<div data-role="panel" id="mypanel" data-theme="a" data-display="overlay" data-position="left">
  <ul data-role="listview">
     <li data-icon="delete"><a href="#" data-rel="close">Close menu</a></li>
     <li><a href="#panel-fixed-page2">Accordion</a></li>
     <li><a href="#panel-fixed-page2">Ajax Navigation</a></li>
     <li><a href="#panel-fixed-page2">Autocomplete</a></li>
     <li><a href="#panel-fixed-page2">Buttons</a></li>
     <li><a href="#panel-fixed-page2">Checkboxes</a></li>
     <li><a href="#panel-fixed-page2">Collapsibles</a></li>
     <li><a href="#panel-fixed-page2">Controlgroup</a></li>
  </ul>
</div><!-- /panel -->

<!-- pages -->
<div data-role="page" id="page1">
</div>

<div data-role="page" id="page1">
</div>

初始化外部面板

$(function () {
  $("#mypanel").panel().enhanceWithin();
});

.enhanceWithin() 用于初始化面板内的小部件。


关于您的滑动代码,需要对其进行调整。您正在每个上增加滑动监听器pageinit也就是说,如果您有五页,则在第五页上,滑动将触发五次。

请注意,从jQM 1.4开始,pageinit$.mobile.changePage均已弃用,pagecreate并且$.mobile.pageContainer.pagecontainer("change", target)分别替换为

$(document).on('pagecreate', function (event) {
    var currentPage = $(event.target);

    currentPage.on("swipeleft", function () {
        var nextpage = currentPage.next('[data-role="page"]');
        if (nextpage.length > 0) {
            $.mobile.pageContainer.pagecontainer("change", nextpage, { /* options */ });
        }
    });

    currentPage.on("swiperight", function () {
        var prevpage = currentPage.prev('[data-role="page"]');
        if (prevpage.length > 0) {
            $.mobile.pageContainer.pagecontainer("change", prevpage, { /* options */ });
        }
    });
});

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery mobile $ .mobile.changePage()Windows Phone 8无法正常工作Cordova / PhoneGap

来自分类Dev

jQuery Mobile Panel打开操作之前

来自分类Dev

jQuery Mobile外部面板无法正常工作

来自分类Dev

jQuery Mobile 1.4.2 selectmenu()。selectmenu('refresh')无法正常工作

来自分类Dev

Rangeslider高亮背景在JQuery Mobile中无法正常工作

来自分类Dev

无法在jquery mobile中显示Google地图

来自分类Dev

无法在组合框上清空()jQuery Mobile

来自分类Dev

jQuery mobile无法通过ID

来自分类Dev

无法复制Jquery Mobile自动完成演示

来自分类Dev

jQuery Click首先无法在IBM Mobile中运行

来自分类Dev

jQuery Bootstrap无法正常运行

来自分类Dev

jQuery Mobile Panel导航冻结/挂起

来自分类Dev

jQuery的If语句无法正常运行

来自分类Dev

jQuery Mobile和Ajax Panel无法正确打开

来自分类Dev

jQuery mobile $ .mobile.changePage()Windows Phone 8无法正常工作Cordova / PhoneGap

来自分类Dev

jQuery panelSnap无法正常运行

来自分类Dev

JQuery Mobile中的Datepicker无法正常工作

来自分类Dev

jQuery Mobile Panel打开时隐藏flexslider

来自分类Dev

jQuery Mobile标头中的图像无法正常工作

来自分类Dev

jQuery .not无法正常运行

来自分类Dev

jQuery Mobile Panel样式问题

来自分类Dev

Phonegap-jQuery Mobile无法正常工作

来自分类Dev

jQuery Mobile外部面板无法正常工作

来自分类Dev

jQuery Mobile 1.4.2 selectmenu()。selectmenu('refresh')无法正常工作

来自分类Dev

jQuery Mobile Phonegap Cordova事件无法正常工作并触发

来自分类Dev

jQuery Mobile动态添加元素无法正常工作

来自分类Dev

更新后,jQuery Mobile Panel无法正常工作

来自分类Dev

Datepicker无法正常工作jQuery Mobile

来自分类Dev

jQuery无法正常运行

Related 相关文章

热门标签

归档