2011-04-17 27 views
0

我有jQuery UI按鈕(我認爲)的問題。
我嘗試通過AJAX加載收件箱,我得到了所有的數據和CSS,但不知何故腳本與jQuery按鈕不起作用。
我有我的網頁的結構如下:jQuery UI按鈕搞砸了AJAX加載它

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>'; 
    } 
} 

正如您可以猜到我呼籲DIV的jQuery代碼在foreach之前。代碼爲:

$(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中時,jquery ui按鈕不起作用?雖然它通過正常的php和沒有AJAX加載時工作。

UPDATE:
http://img35.imageshack.us/i/30fkdl30.png/

這裏是澄清的問題是什麼的圖像。

回答

1

從我所知道的,在從服務器接收到div內容之前調用javascript代碼。在設置divinnerHtml實例後,您應該致電.button()

+0

這奏效了!謝謝你,你救了我的一天:)... – Mixxiphoid 2011-04-17 21:34:38

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(); 

    } 

}