1

我的 Ajax 调用在我的函数内成功运行,但我无法在函数外返回结果。这与 Ajax 或我如何尝试从函数返回结果有关吗?

HTML

<table>
    <tr>
        <th> Vote </th>
    </tr>
    <tbody>
    <tr class="vote">
        <td id="upvote">1</td>
        <td id="downvote">-1</td>
    </tr>
    <tr>
        <td id="newvote"></td>
    </tr>
    </tbody>
</table>

jQuery

$(document).ready(function(e) {
    var myvote = allFunction4(); //returns undefined
    alert(myvote); 

})

function allFunction4() {
    $('.vote').children().click(function() {
        var vote = $(this).text();
        var timestamp = 1369705456; //value I know exits in db
        $.post('forumvote.php', {'timestamp': timestamp, 'vote': vote}, function(result,   success) {
            var newvotes = result;
            alert(newvotes); //this works
            return newvotes;
        })
    })
}
4

1 回答 1

0

那是因为我认为您正在从 $.post 中的函数返回值... return 语句不是从 allfunction4() 返回的。

您可能希望在http://api.jquery.com/jQuery.post/上重新参考 JQuery.post 上的 JQuery 文档

// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.post("example.php", function() {
alert("success");
})
.done(function() { alert("second success"); })
.fail(function() { alert("error"); })
.always(function() { alert("finished"); });
// perform other work here ...
// Set another completion function for the request above
jqxhr.always(function(){ alert("second finished"); });
于 2013-05-29T19:03:36.757 回答