0

我从http://www.gayadesign.com/diy/queryloader-preload-your-website-in-style/下载了 QueryLoader 插件,以便在显示内容之前预加载网站。但是,当我访问时,Chrome 控制台会显示以下消息:

未捕获的类型错误:无法调用未定义的方法“toLowerCase”

这是代码:

问题出在 .toLowerCase() 行:

getImages: function(selector) {
    var everything = $(selector).find("*:not(script)").each(function() {
        var url = "";

        if ($(this).css("background-image") != "none") {
            var url = $(this).css("background-image");
        } else if (typeof($(this).attr("src")) != "undefined" && $(this).attr("tagName").toLowerCase() == "img") {
            var url = $(this).attr("src");
        }

        url = url.replace("url(\"", "");
        url = url.replace("url(", "");
        url = url.replace("\")", "");
        url = url.replace(")", "");

        if (url.length > 0) {
            QueryLoader.items.push(url);
        }
    });
},

有人知道此消息出现的原因及其含义吗?

谢谢。

4

1 回答 1

3

我想你正在使用最新版本的 jQuery ......所以需要将 'attr' 更改为 'prop' 就是这样......

getImages: function(selector) {
    var everything = $(selector).find("*:not(script)").each(function() {
        var url = "";

        if ($(this).css("background-image") != "none") {
            var url = $(this).css("background-image");
        } else if (typeof($(this).prop("src")) != "undefined" && $(this).prop("tagName").toLowerCase() == "img") {
            var url = $(this).attr("src");
        }

        url = url.replace("url(\"", "");
        url = url.replace("url(", "");
        url = url.replace("\")", "");
        url = url.replace(")", "");

        if (url.length > 0) {
            QueryLoader.items.push(url);
        }
    });
},
于 2013-09-15T22:04:37.107 回答