0

我需要通过从数据库接收到的数据动态创建一组复选框。我正在使用 JavaScript 创建复选框。但是当我将它们放在我的页面中时,它们出现时没有 jquery 移动主题。

在javascript中我正在编写整个标签(比如

"<input class='name' data-theme='a' type='checkbox' data-iconpos='right' style='text-align:left' '><label for='checkbox2'>"+ sessionStorage.name + "</label>";

sessionStorage.name有我从数据库收到的数据。

谢谢你。

4

1 回答 1

0

你必须刷新它们。

checkboxradio("refresh");

在这里查看更多

更新

以上是针对 1.2.1 版本的。最新版本有一种更通用的方法来处理这种情况。在这里检查

jQuery Mobile 无法知道您何时将内容注入页面。要让 jQuery Mobile 知道您注入了必须增强的内容,您需要确保调用插件来增强新元素或在父容器上触发(“create”),这样您就不必调用每个插件手动。

创建与刷新:一个重要的区别

请注意,某些小部件具有的创建事件和刷新方法之间存在重要区别。create 事件适用于增强包含一个或多个小部件的原始标记。refresh 方法应该用在现有的(已经增强的)小部件上,这些小部件已经以编程方式操作并且需要更新 UI 以匹配。

更新 2

<!DOCTYPE html>
<html>
<head>
<link href="http://code.jquery.com/mobile/latest/jquery.mobile.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/latest/jquery.mobile.js"></script>

<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <form id="chamada_item">
    <label>
        <input type="checkbox" name="checkbox-0 ">Static
    </label>
  </form>

  <script>
    $(document).ready(function() {
        $('<label><input type="checkbox" name="checkbox-0 ">Dynamic with trigger create</label>').appendTo("#chamada_item").trigger("create");
        $('<label><input type="checkbox" name="checkbox-0 ">Dynamic without trigger</label>').appendTo("#chamada_item");
    });
  </script>
  </body>
</html>
于 2013-09-14T19:52:39.053 回答