我有以下JS对象:
var sources = {
assets: [],
liabilities: [],
income: [],
expenditure: []
}
如您所见,此对象包含许多JS数组。我已经使用以下行添加了HTML中隐藏部分的大量图像到这些数组:
sources.assets[0] = document.getElementById("building").src,
sources.assets[1] = document.getElementById("chair").src,
sources.liabilities[0] = document.getElementById("burger").src,
sources.liabilities[1] = document.getElementById("chips").src,
我现在希望能够做的是:当在画布上的其中一个图像上检测到单击(或mousedown
)时,我想找出该对象在该对象中属于哪个数组,并将该数组的值(即数组名称 - 资产/负债等)保存到变量中。
但是我不知道怎么能找到这个......当我在一个图像上检测到点击时,我尝试使用以下行打印图像属性的内容:
console.log("value of variable obj:" + output + ". Shape is " + obj.shape + ". index is " + obj.shape.index);
但是这只是在控制台中给了我以下打印输出
value of variable obj:shape: [object Object]; pixel: [object Uint8ClampedArray]; . Shape is [object Object]. index is 7
在控制台中。
我正在使用KineticJS库的本地副本将图像绘制到画布上,我知道变量obj
是kineticJS库中mousedown
函数中使用的变量。
用户需要将每个“可拖动”图像拖动到相应的描述框(位于画布上)。
我想知道的是如何找出被点击的图像所属的数组,以便我可以将该数组的名称与用户拖动的图像名称进行比较'clicked'图像为:如果它们相同,则用户将图像拖动到正确的描述框,如果没有,则表示选择不正确。
有谁知道如何找出点击图片属于哪个数组?
答案 0 :(得分:0)
当您创建kineticJS图像时,请将每个图像的“名称”属性设置为图像类型,如下所示:
var chair = new Kinetic.Image({
x: 140,
y: 20,
name: chair,
...more...
然后,当选择图像时,使用所选对象的.getName()来检索“chair”。
从那里你进行数组查找,一切都很好......
所以你使用的“name”属性类似于css类名。