【发布时间】:2014-04-17 02:15:15
【问题描述】:
我曾尝试搜索类似的问题,但无法找到我的代码在 jfiddle 中有效但在浏览器中无效的原因。我还尝试将我的代码从 jfiddle 复制到另一个 fiddle 项目,但该代码在新项目中不起作用。你可以找到my project here。我正在制作一个交互式食物游戏,其中有人挑选食物,例如橡子南瓜,然后用户可以拖动该图像。
我的第一次尝试是将代码粘贴到头部。
<script language="JavaScript">
code
</script>
我需要页面加载事件吗? javascript是否需要放入函数中?我是否使用了 jfiddle 框架中的某些东西,而我需要调用的本地主机上没有使用这些东西?
下面是我使用的代码,没有额外的食物选项
var stage, layer;
var sources = {
plate: 'http://www.healncure.com/wp-content/uploads/2014/03/plate1.jpg',
acornsquash: 'http://www.healncure.com/wp-content/uploads/2014/03/acorn-squash.png',
};
loadImages(sources, initStage);
function loadImages(sources, callback) {
var images = {};
var loadedImages = 0;
var numImages = 0;
// get num of sources
for (var src in sources) {
numImages++;
}
for (var src in sources) {
images[src] = new Image();
images[src].onload = function () {
if (++loadedImages >= numImages) {
callback(images);
}
};
images[src].src = sources[src];
}
}
function initStage(images) {
stage = new Kinetic.Stage({
container: 'container',
width: 936,
height: 550
});
layer = new Kinetic.Layer();
stage.add(layer);
// plate
var plateImg = new Kinetic.Image({
image: images.plate,
x: 218,
y: 20,
width: 503,
hei4ht: 502,
draggable: false,
visible: true
});
layer.add(plateImg);
// acornsquash
var acornsquashImg = new Kinetic.Image({
id: "acornsquash",
image: images.acornsquash,
x: 50,
y: 20,
width: 134,
height: 114,
draggable: true,
stroke: 'orange',
strokeWidth: 5,
strokeEnabled: false,
visible: false
});
layer.add(acornsquashImg);
layer.draw();
$(".food").click(function () {
var node = stage.find("#" + $(this).attr("id"));
node.show();
layer.draw();
console.log($(this).attr("id"));
});
document.getElementById('hide').addEventListener('click', function () {
acornsquashImg.hide();
layer.draw();
}, false);
}
【问题讨论】:
-
奇怪,考虑到 jsfiddle 在浏览器中运行。
-
要么放在 window.onload 事件上,要么放在 body 标签的末尾。必须先加载元素,然后 JS 才能“看到”它们。
-
您的小提琴设置为使用 jQuery。我敢说你的“真实页面”不是。
-
jsfiddle 为您的 javascript 部分添加了一个 Window Onload,您可以在检查它生成的 iframe 时看到它。
-
你是否包含了 jQuery 库?
标签: javascript jquery html loading