Jquery更新到3.1.1 - >匿名功能

时间:2016-11-19 22:04:48

标签: javascript jquery

要实现库,我必须将JQuery升级到3.1.1版本。

尽管在一些研究中很容易修复了一些已弃用的功能,但它还是很顺利 但是我在网站上使用的一个小脚本已经不再使用了,我的JS知识也不是那么好。
有问题的脚本是CountrySelect(它在输入列表中显示国家/地区名称/标志),这是我在控制台中收到的错误:

  

r.fn.load @jquery-3.1.1.min.js:4

     

(匿名函数)@ countrySelect.js:32

     

(匿名函数)@ countrySelect.js:8

     

(匿名函数)@ countrySelect.js:10

以下是脚本的第34行:

// wrap in UMD - see https://github.com/umdjs/umd/blob/master/jqueryPlugin.js
(function(factory) {
    if (typeof define === "function" && define.amd) {
        define([ "jquery" ], function($) {
            factory($, window, document);
        });
    } else {
        factory(jQuery, window, document);  // <------ LINE 8
    }
})(function($, window, document, undefined) {  // <------ LINE 10
    "use strict";
    var pluginName = "countrySelect", id = 1, // give each instance its own ID for namespaced event handling
    defaults = {
        // Default country
        defaultCountry: "",
        // Position the selected flag inside or outside of the input
        defaultStyling: "inside",
        // Display only these countries
        onlyCountries: [],
        // The countries at the top of the list. Defaults to United States and United Kingdom
        preferredCountries: [ "fr", "us", "gb", "ru", "cn" ]
    }, keys = {
        UP: 38,
        DOWN: 40,
        ENTER: 13,
        ESC: 27,
        PLUS: 43,
        A: 65,
        Z: 90
    }, windowLoaded = false;
    // keep track of if the window.load event has fired as impossible to check after the fact
    $(window).load(function() {  // <------ LINE 32
        windowLoaded = true;
    });

我真的很感激一些帮助,以了解为什么它不再起作用,到目前为止我无法弄明白。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

jQuery 3中已删除.load()方法。使用以下代码替换第32行:

$(window).on('load', function() {  // <------ LINE 32
  windowLoaded = true;
});

来源:https://jquery.com/upgrade-guide/3.0/#breaking-change-load-unload-and-error-removed

相关问题