如何添加一个JQuery mobile Collapsible标题的动作?

问题描述 投票:1回答:1

在我的Collapsible标头中,我试图附加一个额外的锚标记,该标记被推离标题,因为JQuery移动标题不支持。有没有办法以neath方式向Collapsible的标题添加额外的链接/动作?

提前致谢

javascript jquery html jquery-mobile jquery-mobile-collapsible
1个回答
1
投票

你可以在$(document).on("collapsiblecreate")事件中注入一个可折叠的按钮,但我更喜欢使用here描述的预增强标记(这可以提高页面创建期间的性能)。

这是一个例子(我相信每个使用JQM的人都至少有一次这样的问题...)

因此,基本上,您不必完全依赖于data-role增强,而是需要在您的html中写入扩展标记以及JQM稍后在窗口小部件初始化期间添加的类。要告诉JQM标记是预先增强的,请将data-enhanced="true"数据属性添加到窗口小部件。

这样,您可以在任何小部件(search-inputs等)中添加您想要的任何元素。只需查看chrome开发人员工具:大多数情况下,您只需要使用自己的标准方法复制并粘贴JQM增强的标记,并在您的html页面中使用它。

$(document).on("collapsiblecreate", ".ui-collapsible", function(e) {
  /* $(this) is the collapsible */
});
.collapsible-assist {
  position: relative;
}

.collapsible-assist .ui-collapsible-heading {
  margin-right: 2.5em;
}

.collapsible-assist.square .ui-collapsible-heading {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}

.collapsible-assist .assist-btn {
  position: absolute;
  right: 0;
}

.collapsible-assist.square .assist-btn {
  margin: 0;
  border-bottom-right-radius: inherit;
  border-top-right-radius: inherit;
}

.collapsible-assist .ui-collapsible-content {
  margin-top: -1px !important;
  border-top-width: 1px !important;
  border-top-right-radius: inherit;
}


/* JQM no frills */

.ui-btn,
.ui-btn:hover,
.ui-btn:focus,
.ui-btn:active,
.ui-btn:visited {
  text-shadow: none !important;
}

.ui-btn:focus {
  -moz-box-shadow: none !important;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
}


/* Speed-up some android & iOS devices */

* {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.css">
  <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
  <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.js"></script>
</head>

<body>
  <div data-role="page">
    <div role="main" class="ui-content">
      <div data-role="collapsible" data-enhanced="true" class="collapsible-assist square ui-collapsible ui-collapsible-inset ui-collapsible-themed-content ui-corner-all ui-collapsible-collapsed">
        <a href="#popup" data-rel="popup" data-transition="pop" class="assist-btn ui-btn ui-btn-icon-right ui-icon-info">Help</a>
        <h4 class="ui-collapsible-heading ui-collapsible-heading-collapsed"><a href="#" class="ui-collapsible-heading-toggle ui-btn ui-btn-icon-left ui-icon-plus">Farm animals<div class="ui-collapsible-heading-status">click to expand contents</div></a></h4>
        <div class="ui-collapsible-content ui-body-inherit ui-collapsible-content-collapsed" aria-hidden="true">
          <ul data-role="listview" data-enhanced="false">
            <li><a href="#" class="ui-btn ui-btn-icon-right ui-icon-carat-r">Chicken</a></li>
            <li><a href="#" class="ui-btn ui-btn-icon-right ui-icon-carat-r">Cow</a></li>
            <li><a href="#" class="ui-btn ui-btn-icon-right ui-icon-carat-r">Duck</a></li>
          </ul>
        </div>
      </div>
      <br>
      <div data-role="collapsible" data-enhanced="true" class="collapsible-assist round ui-collapsible ui-collapsible-inset ui-collapsible-themed-content ui-corner-all ui-collapsible-collapsed">
        <a href="#popup" data-rel="popup" data-transition="pop" class="assist-btn ui-btn ui-btn-icon-notext ui-btn-corner-all ui-icon-info">Help</a>
        <h4 class="ui-collapsible-heading ui-collapsible-heading-collapsed"><a href="#" class="ui-collapsible-heading-toggle ui-btn ui-btn-icon-left ui-icon-plus">Legend<div class="ui-collapsible-heading-status">click to expand contents</div></a></h4>
        <div class="ui-collapsible-content ui-body-inherit ui-collapsible-content-collapsed" aria-hidden="true">
          <form>
            <div data-role="controlgroup">
              <input name="checkbox-1-a" id="checkbox-1-a" type="checkbox" checked>
              <label for="checkbox-1-a">One</label>
              <input name="checkbox-2-a" id="checkbox-2-a" type="checkbox">
              <label for="checkbox-2-a">Two</label>
              <input name="checkbox-3-a" id="checkbox-3-a" type="checkbox">
              <label for="checkbox-3-a">Three</label>
            </div>
          </form>
        </div>
      </div>
    </div>
    <div data-role="popup" id="popup" class="ui-content" data-theme="a">
      <p>I'm a help popup.</p>
    </div>
  </div>
</body>

</html>
© www.soinside.com 2019 - 2024. All rights reserved.