首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery Ajax调用中的Jquery Ajax调用

Jquery Ajax调用中的Jquery Ajax调用
EN

Stack Overflow用户
提问于 2014-01-29 20:13:30
回答 1查看 76关注 0票数 0

我使用这个脚本使用ajax加载页面的一部分:

代码语言:javascript
复制
<script type="text/javascript">
    $(document).ready(function(){
        $('#btn_new').live('click',function(){
            var parameter = 1;
            $.ajax({
                type: "POST",
                url: "new_message.php",
                data: {
                        parameter:parameter,
                },
                success: function(msg)
                {
                    $("#lib_container").ajaxComplete(function(event, request, settings)
                    {
                        $("#lib_container").html(msg);
                    });
                }
            });
        });
    });
</script>

在lib_container div中,我使用以下脚本输入文本:

代码语言:javascript
复制
<script type="text/javascript">
function searchUsers(str) {
        $.ajax({
            type: "POST",
            url: "users_ajax.php",
            data: {
                    search:str
            },
            success: function(msg)
            {
                //console.log(msg);
                //$("#users_lst").html(msg.response);
                $("#users_lst").ajaxComplete(function(event, request, settings)
                {
                    $("#users_lst").html(msg);
                });

            }

        });
}
</script>

当我在输入中加载一些文本时,第二个ajax脚本在div中加载msg变量,然后也重新加载lib_container div。我尝试过许多方法来防止lib_container ajax触发器,但这是徒劳的。只需将输入放入新页面即可正常工作。

有人能帮我解决这个问题吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-29 20:19:46

您的问题似乎是,每次从ajax调用获得成功响应时,您都要注册一个新的ajaxComplete处理程序。由于您似乎想要更新html,所以我不知道您为什么需要这些ajaxComplete处理程序。

试着这样做:

代码语言:javascript
复制
$(document).ready(function(){
    $('#btn_new').live('click',function(){
        var parameter = 1;
        $.ajax({
            type: "POST",
            url: "new_message.php",
            data: { parameter:parameter },
            success: function(msg) {
                $("#lib_container").html(msg);
            }
        });
    });
});

出于同样的理由:

代码语言:javascript
复制
function searchUsers(str) {
    $.ajax({
        type: "POST",
        url: "users_ajax.php",
        data: { search:str },
        success: function(msg) {
            $("#users_lst").html(msg);
        }

    });
}

另一方面,.live是不受欢迎的,您确实应该使用ajax承诺而不是success回调。有关这方面的更多信息,请参见jQuery api

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

https://stackoverflow.com/questions/21441647

复制
相关文章

相似问题

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