QueryLoader不起作用

时间:2013-07-02 17:06:02

标签: jquery google-chrome typeerror preloader lowercase

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

未捕获的TypeError:无法调用未定义的方法'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);
        }
    });
},

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

感谢。

1 个答案:

答案 0 :(得分: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);
        }
    });
},