javascript - 根据按下的按钮替换弹出文本

标签 javascript html css jquery-mobile

下面是创建调用弹出窗口的按钮的代码:

<a href="#positionWindow" data-rel="popup" data-position-to="window" data-transition="flow">popup button</a>

这是使用 jQuery Mobile 创建弹出窗口的代码:

<div data-role="popup" id="positionWindow" class="ui-content popup" data-theme="b" data-overlay-theme="a">
      <a href="#" data-rel="back" data-role="button" data-theme="b" data-overlay-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-right">Close</a>
      <p> Replace the text here depending on which button is pressed </p>
</div>

我如何创建多个按钮,它们都调用用于创建弹出窗口的相同代码,然后根据按下的按钮替换弹出窗口内的文本?

最佳答案

在我看来,只使用一个弹出窗口并动态设置内容似乎很好。不要在标记中使用 href,您应该从代码打开弹出窗口:

$(document).on("vclick", "a[data-popup]", function(e) {
  var cases = [
      "You pressed Button 1",
      "You pressed Button 2"
    ],
    id = $(this).data("popup");
  $("#msg-block").text(cases[id - 1]);
  $("#myPopup").popup("option", "transition", "flow").popup("open");
});
<!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 data-role="header" data-position="fixed">
      <h2>Header</h2></div>
    <div role="main" class="ui-content">
      <a class="ui-btn" data-popup="1" href="#">Popup Button 1</a>
      <a class="ui-btn" data-popup="2" href="#">Popup Button 2</a>
    </div>

    <div data-role="popup" id="myPopup" class="ui-content popup" data-theme="b" data-overlay-theme="a">
      <a href="#" data-rel="back" data-role="button" data-theme="b" data-overlay-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-right">Close</a>
      <p id="msg-block"> Replace the text here depending on which button is pressed </p>
    </div>
  </div>
</body>

</html>

说明:为了将按钮绑定(bind)到文本消息,我在我的示例中使用了自定义 data-attribute 但是 - 如果您愿意 - 您可以只使用 id 按钮。由你决定。

关于javascript - 根据按下的按钮替换弹出文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47836319/

相关文章:

html - IE8 z-index 和 body 不兼容 :after

基于 body ID 的 jquery 事件状态

javascript - 避免通过 Javascript 多次提交表单

javascript - HTML5 Canvas ClipRect 无法正常工作

Javascript 数字与负值的比较不起作用

javascript - 如何使用 JavaScript 检查打印机是否缺纸

html - 在鼠标悬停期间更改图像大小

jquery - 将鼠标悬停在一些 div 上并在 jquery 中显示另一个 div

html - 使用 CSS 改变背景的亮度

asp.net - javascript 添加到 <select> 的选项在回发中丢失