1

我写了以下代码

$(xml).find('list').each(function() {
  $("#content_groups ul").append("<li><a href='#membergroup' onclick='functionare(\"" + $(this).attr("name") + "\")'>" + $(this).attr('name') + "</a><input type='checkbox' name='checkbox-0' id='checkbox-mini-0' class='custom' data-mini='true' /></li>");
});
$("#content_groups ul").listview('refresh');

结果并不如我所愿,即复选框根本没有 jquery css 样式。你能告诉我有什么问题吗?

结果是这样的:

我基本上是 jquery/javascript 的新手,我的项目只需要它来显示来自 xml 的一些结果。

4

2 回答 2

1

虽然我没有足够的信息来解决手头的问题,但我想解释一下,当前的方法并没有以干净的方式实现 DOM。

最好将所有新的 html 添加到一个 var 中,然后在最后附加新创建的 html。

var content_groups;
$(xml).find('list').each(function() {
  content_groups += "<li><a href='#membergroup' onclick='functionare(\"" + $(this).attr("name") + "\")'>" + $(this).attr('name') + "</a><input type='checkbox' name='checkbox-0' id='checkbox-mini-0' class='custom' data-mini='true' /></li>";
});
$("#content_groups ul").append(content_groups);
$("#content_groups ul").listview('refresh');

我知道这并不能真正解决您的问题,但它应该会减少您的网站在 Internet Explorer 中出现冻结的时间。

于 2013-01-22T16:06:24.977 回答
1

首先要考虑的几件事。

$("#content_groups ul").listview('refresh');

只会为您的列表视图设置样式,仅此而已。

要设置复选框的样式,您需要使用适当的函数,如下所示:

$("#checkbox-mini-0").checkboxradio('refresh');

不幸的是,这对您没有帮助,因为 jQuery Mobile 无法设置普通复选框元素的样式。如果您使用标准复选框,您的最终结果将是一个正常的复选框。

jQuery Mobile 复选框如下所示:

<div data-role="fieldcontain">
    <fieldset data-role="controlgroup">
            <legend>Agree to the terms:</legend>
            <input type="checkbox" name="checkbox-1" id="checkbox-1" class="custom" />
            <label for="checkbox-1">I agree</label>
    </fieldset>
</div>

您可以使用此代码并将其插入到您的 listview li 元素中(当然您仍然需要使用.checkboxradio('refresh');对其进行样式设置)但这仍然对您没有帮助,因为 jQuery Mobile 复选框永远不会bu 在列表视图中使用。

但是您可以在列表视图中创建一个自定义复选框,这是我的示例:https ://stackoverflow.com/a/13634738/1848600

于 2013-01-22T16:19:35.087 回答