gpt4 book ai didi

javascript - Jquery 脚本未正确加载

转载 作者:行者123 更新时间:2023-12-02 18:01:24 25 4
gpt4 key购买 nike

下面是简单的代码。当有人按下按钮时,它会绘制一个可以调整大小或比例并且可移动的图像
下面的代码工作正常,但如果我将我的java脚本移到我的head标签中的canvas标签上方
下面的脚本 src = https://ajax.googleapis ……
代码突然停止工作
我很好奇是什么触发了这个事件以及如何解决它

代码:

<head>
<meta charset="utf-8">
<title>fabric.js-simple text display</title>

<!-- Get version 1.1.0 of Fabric.js from CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.1.0/fabric.all.min.js" ></script>

<!-- Get the highest 1.X version of jQuery from CDN. Required for ready() function. -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<body>
<!-- A canvas tag is required or
Fabric.js doesn't know where to draw. -->

<canvas id="myCanvas" height=600 width=800></canvas>
<input id="addStuff" type="button" value="Add!" />
</body>

<script>

var canvas = new fabric.Canvas('myCanvas');
var ctx = canvas.getContext("2d");

$(function(){
$('#addStuff').on('click', function(e) {

fabric.Image.fromURL('http://i.imgur.com/a47Yxsb.png', function(oImg) {
oImg.scaleToWidth(90);
oImg.left=50;
oImg.top = 50;
canvas.add(oImg);
});
});
});
</script>
</head>


</html>

最佳答案

这是一个常见问题。

使用您显示的代码,以下部分将在页面加载时执行:

var canvas = new fabric.Canvas('myCanvas');
var ctx = canvas.getContext("2d");

当文档准备好时,这两行下面的 jQuery 代码将被执行(您的语法类似于 $( document ).ready( handler ))。

问题是 DOM 是从上到下加载的,因此如果您将前 2 行放在文档顶部,那么在执行它们时,下面的 HTML 元素还不存在,这会导致当您引用 myCanvas 元素时出现 Javascript 错误,该元素目前不存在。

因此,您可以将这两行移动到下面的 jQuery“ready”函数中,在这种情况下,您可以将此函数放在您希望的任何位置,甚至可以放在文档顶部,因为它们不会在整个 DOM 已加载。不过,放置它的最佳位置是在一个单独的 javascript 文件中,上次我检查包含这些 .js 文件的最佳位置是在正文的最底部。

关于javascript - Jquery 脚本未正确加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20501759/

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