就您的 removeGrid() 错误而言,jsfiddle 中有一个简单的错误:
$d("body").on('click','#removeGrid',function(){
<-- 在两个事件处理程序中都是“#addGrid”
它还解决了问题 2. 更新了小提琴http://jsfiddle.net/aplus1/37Z4P/20/
对于你的问题 3:检查这个小提琴 - http://jsfiddle.net/aplus1/37Z4P/21/
这是更改的相关代码:
for (i = 0; i < (stage.getWidth()-40)/CELL_SIZE + 1; i++) {
var I = i * CELL_SIZE + 20;
var l = new Kinetic.Line({
stroke: "black",
points: [I, 20, I, stage.getHeight()-20]
});
grid.add(l);
}
for (j = 0; j < (stage.getHeight()-40)/CELL_SIZE + 1; j++) {
var J = j * CELL_SIZE + 20;
var l2 = new Kinetic.Line({
stroke: "black",
points: [20, J, stage.getWidth()-20, J]
});
grid.add(l2);
}
这里发生的情况如下:我已经减少了你的循环,使它从 20px 到 Width-20px,将你的端点在左侧/顶部偏移 20px,并从宽度/高度减少 40px 以获得另一个端点
如果您有任何问题,请告诉我。