gpt4 book ai didi

javascript - jQuery load() 导致 jQuery 插件错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:33:40 25 4
gpt4 key购买 nike

我有以下页面:

<body>
<div id="menuBar"> </div>
<canvas id="myCanvas" width="700" height="700" style="border:1px solid #000000;"></canvas>
</body>

<script src="../Scripts/jQuery.mazeBoard.js"></script>
<script>
$(document).ready(function () {
var mazeArray = ...
$("#menuBar").load("/Views/UpperMenu.html");
$("#myCanvas").mazeBoard(mazeArray);
})
</script>

mazeBoard 是 mazeBoard.js 中定义的 jQuery 插件:

(function ($) {

$.fn.mazeBoard = function (mazeData) {

this.element = $(this)[0];
var context = this.element.getContext("2d");

draw on canvas...

return this;
}
})(jQuery);

奇怪的是,除非我删除行 $("#menuBar").load("/Views/UpperMenu.html") 我收到“mazeboard 不是函数”错误。删除该行后,此错误就会消失。

最佳答案

很难说为什么会发生此错误,但可能与 .load() 异步有关。

最简单的尝试就是交换两行的顺序:

$(document).ready(function () {
var mazeArray = ...
$("#myCanvas").mazeBoard(mazeArray);
$("#menuBar").load("/Views/UpperMenu.html");
});

如果这不起作用,那么您可以在初始化 .mazeBoard() 之前等待 .load() 完成:

$(document).ready(function () {
var mazeArray = ...;
$("#menuBar").load("/Views/UpperMenu.html", function() {
$("#myCanvas").mazeBoard(mazeArray);
});
});

关于javascript - jQuery load() 导致 jQuery 插件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44588743/

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