0

我正在尝试使用敲出 teplate 绑定来绑定 jquery 移动水平单选按钮。

模板中的 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。

4

1 回答 1

1

您必须在模板构建您的页面之后或在页面初始化事件期间执行此操作,如下所示:

$(document).on('pagebeforeshow', '#pageID', function(){ 

});

只有当内容被安全地加载到 DOM 中时,才能增强页面内容。

其次,这NOT确实refresh functionstrigger create. 一个或另一个。Trigger create用于增强整个内容,它应该NOT用于单个元素。每次添加新内容时都没有必要重新设置整个页面的样式。

基本上你只想使用:

$('input[type=radio]').checkboxradio().checkboxradio('refresh');

或者如果第一行抛出错误:

$('input[type=radio]').checkboxradio();

和:

$('fieldset').controlgroup();

但是我建议您仅在附加所有内容后才使用此行:

$('#contentID').trigger('create');

你的对象#contentID的 id在哪里。div data-role="content"或者,如果您不使用内容 div,data-role="page"则仅使用 div:

$('#pageID').trigger('pagecreate');

#pageID您的页面的 id在哪里。

要了解有关动态添加内容的标记增强的更多信息,请查看此答案

于 2013-05-27T11:33:15.397 回答