我在JQuery Mobile中遇到了一个非常奇怪的单选按钮问题.我用ajax填充了一些radiobuttons.当我第一次这样做时,但是任何后续加载似乎都会导致显示问题 - 每个复选框都是单独显示而不是单个列表.
function getWords() {
var gig_id = $('#gigs').val();
$.ajax({
url: Nnn.serverLocation+'/words?gigid='+ gig_id,
success: function(data) {
Nnn.words = eval('(' + data + ')');
displayWords();
}
});
}
function displayWords() {
$('#word_container').html('<fieldset data-role="controlgroup" id="words"></fieldset>');
$('#words').html("<legend>It's:</legend>");
$.each(Nnn.words, function(key, value) {
$('#words').append('<label for="'+value.Word+'" >'+value.Word+'</label><input type="radio" value="'+value.Word+'" id="'+value.Word+'" name="radio-choice-1" />');
});
$('#words input').checkboxradio();
$('body').page();
}
Run Code Online (Sandbox Code Playgroud)
HTML看起来像
<div id='all' data-role="page">
<div data-role="content">
<div data-role="fieldcontain" id='word_container'>
<fieldset data-role="controlgroup" id='words'>
</fieldset>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这让我疯狂!
问题在于页面中CSS的正确加载/显示.如果使用Ajax重新加载页面,则无法使用HTML5 data-*属性.例如,jQueryMobile中的按钮控件如下所示:
<a href="index.html" data-role="button">Link button</a>
Run Code Online (Sandbox Code Playgroud)
如果在ajax调用中使用相同的标记,则无法正确显示.您需要做的是,Firefox/Chrome/Opera->右键单击 - >检查元素并使用此处显示的标记.因此,按钮控件的正确标记将是:
<a class="ui-btn ui-btn-corner-all ui-shadow ui-btn-hover-c" data-role="button" href="index.html" data-theme="c">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">Link button</span>
</span>
</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1619 次 |
| 最近记录: |