javascript - 在使用 Javascript 插入 HTML 片段后,在 JQM 中将标题与按钮对齐

标签 javascript jquery html css jquery-mobile

我正在尝试使用 Javascript 向页面 (JQM) 的页眉中注入(inject)一个标题。 我还想启用订阅功能,因此我还需要通过 Javascript 插入按钮。但是,每当我注入(inject)它时,它就会变得一团糟。 我希望按钮与标题对齐,并且我希望标题位于标题中间。 Here's a picture to demonstrate how it looks right now

我希望它完美对齐,完全没有换行符(就像现在一样)

我使用这些行来插入按钮和标题(JS):

                document.getElementById("forum_name").innerHTML = fName;
            document.getElementById("subscribe_btn").innerHTML = "&nbsp; <a href='#' class='ui-btn'>Unsubscribe</a>";

我在 HTML 文件中使用这些行:

        <div data-role="header"><span style="display:inline;" id="subscribe_btn"></span><center><div id="forum_name" style="display:inline-block"></div></center></div>

最佳答案

使用 JQM,您可以按照以下方式进行:

var subscribeText = "Subscribe", unsubscribeText = "Unsubscribe";

function changeSubscription() {
  var choiche = $('input[name=rg-subscription]:checked'),
    value = choiche.val(),
    label = choiche.parent().text();
  $("#toggleSubscription").toggleClass("ui-screen-hidden", value == "no-subscription");
  if (value == "no-subscription") {
    $("#toggleSubscription").text(subscribeText);
  }
  var pageId = $(":mobile-pagecontainer").pagecontainer("getActivePage").prop("id");
  $("#" + pageId + " [data-role='header'] h1").text(label);
}

$(document).on("pagecreate", "#page-1", function(e) {
  $("input[name='rg-subscription']").change(changeSubscription);
  $("#toggleSubscription").on("vclick", function(e) {
    $(this).text($(this).text() === subscribeText ? unsubscribeText : subscribeText);
  });
  $("#injectButton").click(injectButton);
});

$(document).on("pagebeforeshow", "#page-1", function(e, ui) {
  changeSubscription();
});

function injectButton() {
  $("#toggleSubscription").off();
  var html = [
    '<button id="toggleSubscription" ',
    'class="ui-btn-left ui-btn ui-btn-inline ui-mini ui-corner-all">',
    'Subscribe',
    '</button>'
  ].join("");
  $("#toggleSubscription").remove();
  $("#page-1 [data-role='header']").prepend(html).enhanceWithin();
  $("#toggleSubscription").on("vclick", function(e) {
    $(this).text($(this).text() === subscribeText ? unsubscribeText : subscribeText);
  });
}
<!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 id="page-1" data-role="page">
    <div data-role="header">
      <h1>Header</h1>
    </div>
    <div role="main" class="ui-content" id="page-1-content">

          <fieldset data-role="controlgroup" data-mini="true">
            <input name="rg-subscription" id="rc-subscription-0" value="no-subscription" checked="checked" type="radio">
            <label for="rc-subscription-0">no subscription</label>
            <input name="rg-subscription" id="rc-subscription-1" value="alt-binaries-mp3" type="radio">
            <label for="rc-subscription-1">alt.binaries.mp3</label>
            <input name="rg-subscription" id="rc-subscription-2" value="alt-binaries-linux" type="radio">
            <label for="rc-subscription-2">alt.binaries.linux</label>
            <input name="rg-subscription" id="rc-subscription-3" value="alt-binaries-games" type="radio">
            <label for="rc-subscription-3">alt.binaries.games</label>
          </fieldset>

        <button id="injectButton" class="ui-btn ui-btn-inline ui-mini ui-corner-all">Inject "Subscribe" Button</button>
    </div>
  </div>
</body>

</html>

关于javascript - 在使用 Javascript 插入 HTML 片段后,在 JQM 中将标题与按钮对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43794162/

相关文章:

javascript - Highcharts 工具提示中的附加数据

php - 通过 CamanJS 插件更改图像后保存图像

javascript - Angular 服务中的 $http promise

javascript - 使用 Django 中查询集的 Ajax 和 Jquery 填充选择框

javascript - 根据用户选择禁用单选按钮

javascript - jQuery文件上传个人进展

javascript - 浏览器很小时隐藏面板

javascript - 如何显示对话?

javascript - JavaScript 计时器的闪烁图像问题

javascript - 按命名空间转换对象