gpt4 book ai didi

javascript - JQuery:延迟加载 JQuery 和 '$ not defined'

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:12:24 24 4
gpt4 key购买 nike

我无法解决这个问题以及我在网上找到的大量信息:

在我的项目中,JQuery 加载了“延迟”。由于项目标准,我无法更改。

<script defer src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js'></script>

现在我需要向页面添加一些小功能(目前是内联的):

使用此设置,浏览器将尝试在 jQuery 加载之前执行内联脚本 => "Uncaught ReferenceError: $ is not defined"

<body>
...
...
<script>
$("#city").change(function() {...some stuff...};
$("#doctor").change(function() {...some stuff...};
</script>
</body>

解决这个问题的明智方法是什么?

最佳答案

将它包裹在 window.onload 中,这样脚本只会在所有内容完全加载时执行。

试试这个例子:

window.onload = function () {
$("#city").click(function() {
alert('city');
});
$("#doctor").click(function() {
alert('doctor');
});
}
<script defer src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js'></script>

<button id="city">City</button>
<button id="doctor">Doctor</button>

来自MDN的关于window.onload的解释:

The load event fires at the end of the document loading process. At this point, all of the objects in the document are in the DOM, and all the images, scripts, links, and sub-frames have finished loading.

https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers/onload


对于更惯用的(在 jquery 中)方式,请使用下面的代码。 window.onload 也是一样。

$(document).ready(function() {
// put code here
});

另一种选择,使用 $(function() { })

$(function() {
// put code here
})

关于javascript - JQuery:延迟加载 JQuery 和 '$ not defined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39206516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com