我的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时,为什么jquery ui按钮不起作用?虽然它通过正常的PHP和没有AJAX加载时确实有效。
更新:
http://img35.imageshack.us/i/30fkdl30.png/
这是一张图片,以澄清问题所在。
答案 0 :(得分:1)
据我所知,在从服务器收到div
内容之前调用了javascript代码。在设置.button()
的{{1}}属性后,您应该致电innerHtml
。
答案 1 :(得分: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();
}
}