这是html:
<form>
<fieldset data-role="controlgroup" data-type="horizontal" id="buddies" />
</form>
这是javascript:
for (var i = 0; i < json.length; i++) {
var usr = json[i];
var mid = usr.mid;
var input = '<input id="' + mid + '" type="checkbox"';
var photo = usr.photo;
if (typeof photo === 'undefined') {
photo = '<span class="middle"></span><br/>';
no_photo_ids[no_photo_ids.length] = mid;
} else {
photo = '<span class="middle"><img src="' + photo + '"/></span><br/>';
if (max_invite_messages-- > 0) {
input += ' checked="checked"';
}
}
input += '>';
var label = '<label for="' + mid + '">' + photo + usr.name + '</label>';
$('#buddies').append(input);
$('#buddies').append(label);
}
$('#buddies').trigger('create');
它可以在jquery mobile 1.3.2中正常工作,就像:
但它在1.4.3中搞砸了,就像:
答案 0 :(得分:0)
最后我找到了一个解决方案:Control group loses control after dynamic add of radio button - jQuery Mobile
1.3.2很容易像这样工作:
$('#buddies').append(...);
$('#buddies').append(...);
...
$('#buddies').trigger('create');
1.4.3很像这样一团糟:
$('#buddies').controlgroup("container").append(...);
$('#buddies').controlgroup("container").append(...);
...
$('#buddies').enhanceWithin().controlgroup("refresh");
现在效果还不错: