回调函数中的jQuery回调函数

时间:2015-05-15 11:46:02

标签: javascript jquery ajax

我想对我存储在var searchingUsers中的数据做一些事情,问题是当我做警报时(searchingUsers);它里面没有任何东西。如果我做警报(searchingUsers);在var用户代码下。它有一些东西。

我认为这是因为代码在完全执行之前已经运行。现在我想要在那里添加另一个回调函数,只是它似乎无法正常工作我总是会遇到错误。

function addFriend() {
    var formData = "name=" + $("#nameForm").val() + "&familyname="
            + $("#familyname").val() + "&emailaddress="
            + $("#emailaddress").val();
    var searchedUsers = [];
    $.ajax({
        type : "POST",
        url : "ControllerJavascript?action=addFriend",
        dataType : "xml",
        data : formData,
        success : function(xml) {
            $(xml).find("user").each(
                    function() {
                        var user = $(this).find("name").text().trim() + " "
                                + $(this).find("familyname").text().trim()
                                + " // " + $(this).find("email").text().trim();
                        searchedUsers.push(user);
                    });

        },
        error : function() {
            alert("An error occurred while processing XML file.");
        }
    });
    alert(searchedUsers);
    getFriends();
}

是否可以添加另一个回调函数,以便首先将所有用户推送到searchUsers?

1 个答案:

答案 0 :(得分:1)

您已经拥有此功能:

success : function(xml) {
...
},

这是你的回调。只需在每种方法后调用警报:

success : function(xml) {
        $(xml).find("user").each(
                function() {
                    var user = $(this).find("name").text().trim() + " "
                            + $(this).find("familyname").text().trim()
                            + " // " + $(this).find("email").text().trim();
                    searchedUsers.push(user);
         });
         alert(searchedUsers);
    },