1

目標:ユーザーがログインした場合にページが動的に変化するように、div内のコンテンツを更新しようとしています。

進捗状況:最初に使用しようとしました$("#tab_b").load("php/tabs.php #tab_b");が、DOMが更新されなかったため、jqueryスタイルが適用されませんでした。次に、.trigger('create')関数を追加してみました。$("#tab_b").trigger('create');これにより、スタイルがほんの一瞬だけ点滅しました。次に、機能しているように見える.append()関数を試しました。次のコードを使用して関数をテストしていますが、これは機能します。

$("#tab_b").html('');
$("#tab_b").append("<button type='submit' data-theme='a'>Test button</button>").trigger('create');

私が抱えている唯一の問題は、phpファイルからコンテンツをフェッチし、それをdivに追加することです。

更新する必要のあるコンテンツ: "#tab_b"

<div id="tab_b" class="content_div">    
    <?php

    if(!isLoggedIn())
    {
        ...
    }
    else
    {
        echo("
        <button type='submit' data-theme='a' id='logout' >Logout</button>
         ");
    }
    ?>
</div>

これを行う方法について何かアイデアはありますか?また、改善に関する提案は大歓迎です。私は初心者プログラマーです。

この質問は、他のトピックで説明されているより大きな問題を解決するための試みです。

jQuery Mobileは、コンテンツを動的にロードした後にスタイルを適用しません

4

2 に答える 2

1

これはうまくいくかもしれません:

$( '#tab_b' ).live( 'pageinit',function(event){
  alert( 'This page was just enhanced by jQuery Mobile!' );
});

イベントAPIを調べます

于 2012-03-29T13:02:24.983 に答える
0

$.ajax関数でデータをフェッチできることがわかりました。これにより、ページ全体が返されます。私の解決策は、更新が必要なコンテンツを新しいphpページtab_b.phpに移動し、そこからロードすることでした。これが最善の解決策かどうかはわかりませんが、機能します。

$.ajax({
     url: 'php/tab_b.php',
     success: function (data) {
          $("#tab_b").html('');
          $("#tab_b").append(data).trigger('create');
     }
});
于 2012-04-13T09:29:46.250 に答える