0

jquery uiボタンに問題があります(私は思います)。
AJAXを介して受信トレイを読み込もうとすると、すべてのデータとcssを取得しましたが、どういうわけかjqueryボタンを使用したスクリプトが機能しません。
ページを次のように構成しました。

ob_start();
session_start();
if(isset($_SESSION['rol']))
{
    if(isset($_POST['getnewmail']))
    {
        //Do some query stuff here
        //Print the output through a foreach...
        echo '<div class="jbutton">';
        foreach($result as $key => $value)
        {
            foreach($value as $y => $mailid)
            {
                //echo the stuff
            }
        }
        echo '</div>';
    }
}

ご想像のとおり、foreachの前にdivでjqueryコードを呼び出します。そのためのコードは次のとおりです。

$(function() {
    $("button, a", ".jbutton").button();
});

私のAJAXコードは$_POST['getnewmail']を設定します。

function loadinbox(serverpage, contentid)
{
    var xmlhttp = ajaxFunction();
    if (xmlhttp)
    {
        var params = "getnewmail=settrue";
        var url = "/location/php/" + serverpage;
        xmlhttp.open("POST", url, true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.setRequestHeader("Content-length", params.length);
        xmlhttp.setRequestHeader("Connection", "close");
        xmlhttp.onreadystatechange = function()
        {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
            {
               if(xmlhttp.responseText != "")
               {
                    document.getElementById(contentid).innerHTML=xmlhttp.responseText;
                    return;
               }
            }
        }
        xmlhttp.send(params);
    }
}

問題は、AJAXを使用せずにメールを受信トレイにロードしようとすると、必要なものが得られることです。
しかし、コードをifステートメントに移動し、AJAXで呼び出すと、すべて失敗します。

誰かが私が間違っていることを説明できますか?AJAXを使用してdivにロードしたときにjqueryuiボタンが機能しないのはなぜですか?通常のphpを介してAJAXなしでロードされた場合は機能しますが。

更新: http:
//img35.imageshack.us/i/30fkdl30.png/

これは問題が何であるかを明確にするための画像です。

4

2 に答える 2

1

私の知る限りdiv、サーバーからコンテンツを受信する前にjavascriptコードが呼び出されます。のプロパティ.button()を設定した後、を呼び出す必要があります。innerHtmldiv

于 2011-04-17T21:13:38.297 に答える
0

ありがとう、それは私にとってもうまくいきました。ここで私が最後に得たもの:

まず、AJAX 応答を送信し、次にすべてのボタンを再初期化します。

xmlhttp.onreadystatechange=function()
{
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
        document.getElementById("users-contain").innerHTML=xmlhttp.responseText;

        //recall JQeuryUI buttons initialization.
        $("input:submit", ".demo" ).button();

     }

}

于 2012-05-18T18:50:23.783 に答える