我不知道这里出了什么问题,它已经使我发疯了。每当我在代码上使用一些断点时(如图像中所示),然后重新加载页面,一切都会正常进行。但是,如果我关闭开发人员工具然后刷新,则会抛出此错误:'Uncaught TypeError:$ design [a] .draggable不是一个函数(...)'。
以下是我的代码和图像:
调试映像:
我的剧本:
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var $canvas = $("#canvas");
var canvasOffset = $canvas.offset();
var offsetX = canvasOffset.left;
var offsetY = canvasOffset.top;
var design = [];
var $design = [];
var pic = [];
$.ajax({
type: 'get',
url: ('/getCustomizeParts'),
data: {
},
success: function(data) {
for (var a = 0; a < data.length; a++) {
design[a] = new Image();
pic[a] = data[a].partimagePath;
design[a].src = "images/part/" + pic[a];
$design[a] = $("#design" + (a + 1));
//here it threows me the error
$design[a].draggable({
helper: 'clone',
});
$design[a].data("image", design[a]);
}
$canvas.droppable({
drop: dragDrop,
});
}
});
我已经按照以下顺序在页面中添加了脚本标记
<script src="/Admin/js/jquery-2.2.3.min.js"></script>
<script src="/Admin/js/jquery-ui.min.js"></script>
<script src="/Admin/js/customizeScript.js"></script>
最佳答案
尝试将defer属性添加到脚本链接,如下所示:
<script src="/Admin/js/customizeScript.js" defer></script>
// or this for XHTML
<script src="/Admin/js/customizeScript.js" defer="defer"></script>
有关defer属性的更多信息,请参见this w3school page
关于javascript - 未被捕获的TypeError:.draggable不是函数(…),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41369661/