从jquery mobile 1.3.2到1.4.3,复选框水平失败

时间:2014-08-11 05:09:53

标签: jquery-mobile jquery-mobile-checkbox

这是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中正常工作,就像: enter image description here

但它在1.4.3中搞砸了,就像: enter image description here

1 个答案:

答案 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");

现在效果还不错:

enter image description here