3

Content divに要素を追加するスクリプトがありますが、機能しませんでした。ご覧のとおり、「messageBox」のコンテンツは、mysqlテーブルとそこからのデータを選択するphpファイルから届きます。

JSファイルの内容は次のとおりです。

    function getWallMsg(){
    $.getJSON('SELECT_uzenofal.php?callback=?',function(data) {
        data.forEach(function(e){
            $('#posts').append($('<div class="messageBox">'+'<img src="img/profilok/'+e.kep+'"/>'+'<p class="name">'+e.nev+'</p>'+'<p>'+e.uzenet+'</p>'+'<p class="time">'+e.ido+'</p>'+'</div>'));
        });
    });
}

$(document).ready(function(){
    drawNavbar();
    getWallMsg();
});

そしてhtml:

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" >
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
    <link rel="stylesheet" type="text/css" href="css/main.css">
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="js/main.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
</head>
<body>
    <!-- Home -->
    <div data-role="page" id="fal">
        <!-- header -->
        <div data-role="header">
            <h3>
                Üzenőfal
            </h3>
        </div>
        <!-- content -->
        <div data-role="content" id="posts">

        </div>
        <!-- footer -->
        <div class="nav" data-role="footer" data-position="fixed" data-theme="a"></div>
    </div>
</body>

私は何をすべきか?

4

2 に答える 2

1

これを変更する必要があります。

$(document).ready(function(){
    drawNavbar();
    getWallMsg();
});

これに:

$(document).on('pagebeforeshow', '#fal', function(){       
    drawNavbar();
    getWallMsg();
});

基本的document readyに は使用しないでくださいjQuery Mobile。詳細については、このARTICLEを参照してください。透明性を確保するために、これは私の個人的なブログです。または、こちらをご覧ください。

document ready基本的に、ページ コンテンツが にロードされていないときに追加しようとしていますDOM。代わりにjQuery Mobile、 などの適切なページ イベントをpagebeforeshow使用する必要があります。

編集 :

pagebeforeshow イベントに間違った ID を追加していました。今すぐ動作するはずです。

于 2013-03-19T18:00:11.793 に答える