JQuery中未定义的返回值

Undefined return value in JQuery

本文关键字:返回值 未定义 JQuery      更新时间:2023-09-26

函数执行时返回一个未定义的值。我想让它在页面加载时返回true,否则返回false:

function JLoad (url) {
        var uri = url + ' #div';
        $("#div").load(uri, {'bd': '1'}, function(response, status, xhr){
            if (status != "error"){
                if (window.history && window.history.pushState)
                {
                    window.history.pushState({}, 'Test', url);
                }
                else
                {
                    window.location.hash='!/'+url;
                }
                return true;
            }else{
                return false;
            }
        });
    };

这是用来请求函数的一部分代码:

$(document).ready(function() {
$("a").on("click", function() {
        var url = $(this).attr("href").replace('./', '');
    console.log(JLoad(url));
        return false;
    });
});

因为jQuery.load()是异步的,所以重写你的函数来接受回调。

function JLoad (url, cb) {
    var uri = url + ' #div'
    $("#div").load(uri, {'bd': '1'}, function(response, status, xhr){
        if (status != "error"){
            if (window.history && window.history.pushState)
            {
                window.history.pushState({}, 'Test', url);
            }
            else
            {
                window.location.hash='!/'+url;
            }
            cb(true);
        } else{
            cb(false);
        }
    });
}

:

$(document).ready(function() {
    $("a").on("click", function() {
        var $link = $(this),
            url = $link.attr("href").replace('./', '');
        JLoad(url, function(successful) {
            if (successful) {
                $("a").removeClass("active");
                $link.addClass("active");
            }
        });
    });
});