我正在尝试使用敲除teplate绑定绑定jquery移动horizantal单选按钮。
模板中的fielsset看起来像
<fieldset data-role="controlgroup" data-bind="attr: {id:QuestionID+'_fld'},template: {name:'optionTemplate', foreach: OptionList}">
</fieldset>
,选项模板看起来像
<script type="text/x-jquery-tmpl" id="optionTemplate">
<input type="radio" data-bind="attr: { id:OptionID+'_radio',value:OptionID, name: QuestionID+'_rd'}, checked:$parent.OptionId" />
<label data-bind="text:OptionText, attr: {id:OptionID+'_optn', for : QuestionID+'_rd' }"> </lable>
</script>
我试过了
$('input[type=radio]').checkboxradio().trigger('create');
$('fieldset').controlgroup().trigger('create');
我的问题是移动css没有应用于fiedset。
答案 0 :(得分:1)
您必须在模板构建页面后或在页面初始化事件期间执行此操作,如下所示:
$(document).on('pagebeforeshow', '#pageID', function(){
});
只有在将内容安全地加载到DOM中时,才能增强页面内容。
其次, NOT
将 refresh functions
与 trigger create
混合。一个或另一个。 Trigger create
用于增强整个内容, NOT
应用于单个元素。每次添加新内容时都不需要重新整理整个页面。
基本上你只想使用:
$('input[type=radio]').checkboxradio().checkboxradio('refresh');
或者如果第一行引发错误:
$('input[type=radio]').checkboxradio();
和
$('fieldset').controlgroup();
但是我建议你只在添加了所有内容之后使用这一行:
$('#contentID').trigger('create');
其中 #contentID
是 div data-role="content"
对象的ID。或者,如果您不使用内容div,只有 data-role="page"
div才能使用此内容:
$('#pageID').trigger('pagecreate');
其中 #pageID
是您网页的ID。
要了解有关动态添加内容的marku增强功能的更多信息,请查看此 answer 。