jQuery Mobile 面板未关闭

标签 jquery jquery-mobile cordova panel sidebar

我遇到一个小问题。

参见this fiddle 。我在章节上有一个侧边栏菜单。现在,我打开侧栏菜单并单击第 2 章,然后菜单关闭并打开第 2 章。现在,我再次单击侧边栏菜单中的第 2 章,然后侧边栏菜单应该关闭,但事实并非如此。

这是html代码:

<div data-role="page" id="Ch1">
    <div>
        <a href="#leftNavmenuCh1" data-role="button" data-inline="true" data-icon="bars">Chapters</a>

    </div>
    <div id="leftNavmenuCh1" data-role="panel" data-icon='false' data-iconpos="notext" data-position="left" data-display="overlay"
            data-dismissible="true">
        <header class="nav-header">list header</header>
        <ul id="leftMenuCh1" data-role='listview' data-icon='false' class="sidelist"  >
        <li><a href='#Ch1' class='navlink'  >chap 1</a></li>
            <li><a href='#Ch2' class='navlink'  >chap 2</a></li>
            <li><a href='#Ch3' class='navlink'  >chap 3</a></li>
        </ul>
    </div>
    <div data-role='content'>
        content chapter 1
    </div>

</div>

<div data-role="page" id="Ch2">
    <div>
        <a href="#leftNavmenuCh2" data-role="button" data-inline="true" data-icon="bars">Chapters</a>

    </div>
    <div id="leftNavmenuCh2" data-role="panel" data-icon='false' data-iconpos="notext" data-position="left" data-display="overlay"
            data-dismissible="true">
        <header class="nav-header">list header</header>
        <ul id="leftMenuCh2" data-role='listview' data-icon='false' class="sidelist"  >
        <li><a href='#Ch1' class='navlink'  >chap 1</a></li>
            <li><a href='#Ch2' class='navlink'  >chap 2</a></li>
            <li><a href='#Ch3' class='navlink'  >chap 3</a></li>
        </ul>
    </div>
    <div data-role='content'>
        content chapter 2
    </div>

</div>

<div data-role="page" id="Ch3">
    <div>
        <a href="#leftNavmenuCh3" data-role="button" data-inline="true" data-icon="bars">Chapters</a>

    </div>
    <div id="leftNavmenuCh3" data-role="panel" data-icon='false' data-iconpos="notext" data-position="left" data-display="overlay"
            data-dismissible="true">
        <header class="nav-header">list header</header>
        <ul id="leftMenuCh3" data-role='listview' data-icon='false' class="sidelist"  >
            <li><a href='#Ch1' class='navlink'  >chap 1</a></li>
            <li><a href='#Ch2' class='navlink'  >chap 2</a></li>
            <li><a href='#Ch3' class='navlink'  >chap 3</a></li>
        </ul>
    </div>
    <div data-role='content'>
        content chapter 3
    </div>

</div>

请让我知道在这种情况下我能做什么。

P.S:现阶段我无法使用任何其他库作为侧面菜单,因为除了这个小问题并在商店中发布之外,我的整个应用程序功能齐全。

最佳答案

实际上这对我来说是一个问题,我也无法解决,但这里有一个无需任何库或其他东西即可解决您的问题的解决方案:

$(document).on("pageinit", function () {
  $("[data-role=panel] a").on("click", function () {
    if($(this).attr("href") == "#"+$.mobile.activePage[0].id) {
      $("[data-role=panel]").panel("close");
    }
  });
});

检查目标的哈希值是否与当前目标的哈希值相同,然后关闭面板。希望这有帮助。

这是一个现场演示: jsfiddle

您可以引用这篇文章:

post

关于jQuery Mobile 面板未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23193384/

相关文章:

javascript - WebSQL/SQLite 按 javascript 日期 obj 排序

javascript - 仅使用部分 jQuery Mobile

jquery - 无法让 Google Maps API v3 在 jQuery Mobile 上完全加载

android - 无法实例化应用程序 androidx.multidex.MultiDexApplication : java. lang.ClassNotFoundException

android - genymotion power_supply 出错

javascript - jQuery 事件顺序并等待动画完成

jquery - Blueimp 文件上传一项请求 - 文件未发送

javascript - 使用javascript读取本地文本文件

jQuery 奇数 : CSS or jQ selector?

jquery - jQuery AJAX 中 10 秒后 API 调用超时