0

我正在触发一个 ajax 调用以将用户登录到该网站。div“sitelogin”包含登录表单部分。成功进行 ajax 身份验证后,div“sitelogin”会删除登录表单部分并填写 ajax html 响应。响应由一个注销按钮和一个带有“欢迎用户”的 div 组成。

现在注销按钮附加到另一个 ajax 调用以销毁会话并将登录部分带回“sitelogin”div。但在我刷新页面之前它不会触发。请告诉我,如果我在登录 ajax 调用使用注销响应填充“sitelogin”div 后立即尝试使用“注销”按钮注销,为什么注销 ajax 调用不会触发。两个 ajax 调用都在页眉中。

我在这里发布了更多信息

https://stackoverflow.com/questions/18627573/php-ajax-login-and-logout-not-working-together-and-with-nobody-logged-onto-the-s

请推荐!!

4

3 回答 3

0

我猜你正在使用 jQuery Ajax。

将注销 ajax 调用放在注销按钮和欢迎用户 div 所在的页面上。

因此,当您的注销代码响应时,将初始化注销 ajax 调用,您可以在不刷新页面的情况下调用它。

于 2013-09-06T08:55:24.140 回答
0

您的问题是,当元素尚不存在时,您绑定了 onclick 事件。当将ajax响应放入div时,绑定当然不会再次触发。

您应该仅在用户登录后打印此 javascript 代码 - 即使出于安全原因!您可以直接使用 php 打印该 javascript 代码,并将其放入 div 时执行。

于 2013-09-06T09:00:15.147 回答
0

我得到了这个问题的答案。Jquery 有一种处理稍后进入 dom 的元素的方法。他们抓取父元素,然后在创建事件时将事件委托给实际的触发元素。

我用下面的。

    $('#parent div').on('click','#event triggering element',function(){
        $.ajax({
                //ajax function
            }
        });
        return false
    });

这解决了我的头痛。希望它也会对您有所帮助。

于 2013-09-08T06:25:22.183 回答