在我的网站上,我使用以下代码。它适用于jQuery 2.2.3。现在我想使用 jQuery 3,但它似乎不起作用。你能帮我把这段代码重写成jQuery 3吗?香草js解决方案也将不胜感激
$(document).ready(function () {
$('#preloading').load("loading.html", function () {
$(window).load(function () {
$('#preloading').fadeOut('slow');
});
});
});
您的问题是因为在 jQuery 3.x 中,load()
方法仅用于通过 AJAX 请求检索内容,因此将其用作事件处理程序是无效的。顺便说一句 - 使用 2.x 的原始代码中不需要它。
要解决此问题,只需删除$(window).load()
调用:
$(document).ready(function () {
$('#preloading').load("loading.html", function() {
$('#preloading').fadeOut('slow');
});
});
Lucas,您的代码已弃用/删除方法:
- 已弃用
$(document).ready
(https://jquery.com/upgrade-guide/3.0/#deprecated-document-ready-handlers-other-than-jquery-function) - 已移除
.load()
(https://jquery.com/upgrade-guide/3.0/#breaking-change-load-unload-and-error-removed)
更换后:
$(function () {
$('#preloading').load("loading.html", function () {
$(window).on('load', function () {
$('#preloading').fadeOut('slow');
});
});
});