首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery ui按钮在AJAX加载时搞砸了

jquery ui按钮在AJAX加载时搞砸了
EN

Stack Overflow用户
提问于 2011-04-18 02:36:10
回答 2查看 975关注 0票数 0

我对jquery ui按钮有问题(我想)。

我尝试通过AJAX加载一个收件箱,我得到了所有的数据和css,但不知何故与jquery按钮的脚本不工作。

我的页面结构如下:

代码语言:javascript
运行
复制
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代码。它的代码是:

代码语言:javascript
运行
复制
$(function() {
    $("button, a", ".jbutton").button();
});

我的AJAX代码设置$_POST‘’getnewmail‘。

代码语言:javascript
运行
复制
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调用它时,一切都失败了。

有人能给我解释一下我哪里做错了吗?为什么jquery ui按钮在使用AJAX加载到div中时不起作用?虽然它可以在没有AJAX的情况下通过普通的php加载。

更新:

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

这里有一张图片来说明问题是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-18 05:13:38

据我所知,javascript代码是在从服务器接收div内容之前调用的。您应该在设置了.button()innerHtml属性之后调用div

票数 1
EN

Stack Overflow用户

发布于 2012-05-19 02:50:24

谢谢,这对我也很管用。下面是我在最后得到的结果:

首先,我们发送AJAX响应,然后,我们重新初始化所有按钮。

代码语言:javascript
运行
复制
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();

     }

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5695553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档