0

ajax経由でjquery mobileのリストビューにアイテムを動的に追加しようとしています。

データを返し、生成された html を追加すると、新しいアイテムはリストビュー スタイルのプロパティを継承しません。

$(function() {
    $('.load_more').live("click",function() {
        var a_id = $(this).attr("id");
        var b_id = $(this).attr("data");
    if(a_id!='end'){
        $.ajax({
            type: "POST",
            url: "data.php",
            data: "aid="+ a_id+"&bid="+b_id,
    beforeSend:  function() {
        $('a.load_more').html('<img src="loading.gif" />');

},
    success: function(html){
        $("#more").remove();
        $("ul#updates").append(html);
        $('ul#updates').listview('refresh');
        }
    });
}
        return false;
    });
});
4

2 に答える 2

0

AJAX 呼び出しを行うときに同様の問題が発生し、listview() または trigger() 関数でうまくいきませんでした。これらは、Derek の返信の jsfiddle のように、コンテンツが動的でない場合に機能します。私が見つけたのは、Google ajax API ( http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js -- または 1.7.1 またはいくつかのバリアントを使用している場合) ) その後、 listview() 関数はスタイルに関して機能しなくなります。このスクリプトが静的コンテンツを含む jsfiddle に追加されると、新しいアイテムはスタイルを継承しません。このスクリプトがなくてもページが機能する場合は、スクリプトを削除すると一時的な修正になります。

于 2013-07-30T19:11:54.330 に答える
0

jQuery Mobile は、動的コンテンツを自動的に拡張しません。createjQM に新しいコンテンツの初期化を強制するには、イベントをトリガーする必要があります。

$(html).trigger('create');

リストビューに関しては、refresh新しいアイテムを追加するときに十分なはずです。この例http://jsfiddle.net/qrYF7/を参照してください。

http://jquerymobile.com/demos/1.1.1/docs/pages/page-scripting.html

同様の質問:

jQuery Mobile に動的に挿入されたコンテンツのスタイル/テーマを強制的に再評価させる

コンテンツを動的に追加した後、jQuery Mobile でスタイルが適用されない

于 2012-08-12T20:16:30.057 に答える