要实现库,我必须将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;
});
我真的很感激一些帮助,以了解为什么它不再起作用,到目前为止我无法弄明白。我该如何解决这个问题?
答案 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