Jquery移动AJAX更新问题

时间:2011-03-17 23:14:13

标签: jquery-mobile

我在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();
}

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> 

这让我发疯了!

1 个答案:

答案 0 :(得分:5)

问题在于页面中CSS的正确加载/显示。如果使用Ajax重新加载页面,则无法使用HTML5 data- *属性。例如,jQueryMobile中的按钮控件如下所示:

<a href="index.html" data-role="button">Link button</a>

如果在ajax调用中使用相同的标记,则无法正确显示。你需要做的是,Firefox / Chrome / Opera-&gt;右击 - &gt;检查元素并使用那里显示的标记。因此,按钮控件的正确标记将是:

<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>