我正在解决这个问题。 这些是我使用的代码并引起了上述问题。
$(document).ready(function () {
$("#at-site-btn").bind("tap", function () {
$.mobile.changePage("view/dialog/at-site.php", { transition:"slidedown", role:"dialog" });
});
$('#at-site-page').live('pagecreate', function(){
var $checked_emp = $("input[type=checkbox]:checked");
var $this = $(this);
var $msg = $this.find("#at-site-msg");
$checked_emp.appendTo($msg);
$checked_emp.trigger('create');
$msg.trigger('create');
$(document).trigger('create');
$this.trigger('create');
$("html").trigger('create');
});
});
说明:
上面的代码位于名为hod.php的文件中。该文件包含许多复选框。这些复选框同时被检查,当我按下#at-site-btn按钮时,at-site.php出现(作为对话框)并显示每个选中的复选框。
这是问题发生的地方。当我按下对话框中的后退按钮返回上一页并尝试取消选中这些复选框时,错误会弹出标题中提到的内容。我的代码中没有调用“刷新方法”,因此我没有找到解决此问题的方法。
致以最诚挚的问候,非常感谢您的回答。
答案 0 :(得分:15)
您使用的是哪个版本的jQueryMobile?您可能需要使用pageinit
而不是pagecreate
。 jQueryMobile documentation的这一部分谈到了选择。
对于重新绘画或创作,solution that @Taifun指出,看起来像:
$("input[type='radio']").checkboxradio();
$("input[type='radio']").checkboxradio("refresh");
对我来说没问题,但它没有正确地绘制控件100%。单选按钮没有涂上圆角的边缘。
在我看到您的代码之前,我read here您可以在容器对象上调用.trigger('create')
,它对我有效。你这样做但是在pagecreate
内,而不是pageinit
。
答案 1 :(得分:0)
我实际上使用的是 flipswitch checkbox:
<div class="some-checkbox-area">
<input type="checkbox" data-role="flipswitch" name="flip-checkbox-lesson-complete"
data-on-text="Complete" data-off-text="Incomplete" data-wrapper-class="custom-size-flipswitch">
</div>
$("div.ui-page-active div.some-checkbox-area div.ui-flipswitch input[type=checkbox]").attr("checked", true).flipswitch( "refresh" )
查看我的完整答案here。