我正在玩一个与我正在玩的脚本有点问题。我正在尝试绘制三角形,当你点击它们“翻转”并改变颜色时,如果再次点击它们会恢复到它们的初始状态。问题是我不确定在哪里设置“isflipped”变量。
有没有人有任何想法/有没有人想出这样的问题?这就是我现在所拥有的:
谢谢!
答案 0 :(得分:4)
使用数据
//read
$(yourElem).data("flipped")
//write
$(yourElem).data("flipped", true);
答案 1 :(得分:1)
如果您将设计保留在每个画布只有一个三角形的位置,则可以使用jQuery的data()
方法在canvas元素本身上设置翻转状态。因此,在您的点击事件处理程序中,使用$(e.currentTarget).data('isflipped', 1);
设置状态,var isflipped = $(e.currentTarget).data('isflipped')
获取状态。
如果你不为每个画布使用一个三角形,你需要考虑添加一个中间绘图抽象,以使你从即时模式画布中抽出更多保留模式。
答案 2 :(得分:1)
您可以将元素索引作为键保存在地图中,例如
var flipmap = {}
flimmap[index] = false
//later in click
flipmap[index] = !flipmap[index]
其他替代方法是使用jquery data API将数据附加到元素,例如
每个元素的第一个init翻转值
jQuery.data($("canvas")[i], 'flipped', false)//not-flipped
而不是点击切换
var flipped = jQuery.data(elem,'flipped')//old value
flipped = !flipped;//toggle it
jQuery.data(elem,'flipped',flipped)//save it
我已经用
更新了示例答案 3 :(得分:0)
你也可以在每个画布上使用一个简单的属性'翻转'来实现,但这就是Darek在他的评论中所说的(使用类代替)http://jsfiddle.net/hnqB6/55
答案 4 :(得分:-1)
您可以使用数据将变量附加到元素本身。我已经更新你的小提琴了。