0
在以下代碼中,如何在畫布單擊事件中調用函數searchBlock()
? this.searchBlock()
不能在這裏工作!如何在javascript點擊事件之外調用函數
Board.prototype = {
addHandlerToBlock:function(){
this.canvas.onclick = function(e){
var e = window.event || e;
var rect = this.getBoundingClientRect();
var mouseX = e.clientX - rect.left;
var mouseY = e.clientY - rect.top;
var clickBlockId = this.searchBlock(mouseX, mouseY) || -1;
if(clickBlockId >= 0){
if(canMove(this.puzzle[clickBlockId])){
alert("ha")
}
}
this.refresh(p);
}
},
searchBlock:function(x, y){
for(var i = 0; i < this.puzzle.length; i++){
if(x - this.puzzle[i].x > 0 && y - this.puzzle[i].y > 0){
return i;
}
}
}
}
像這樣:var board = new Board(); var block = board.searchBlock(x,y);' – 2014-10-29 16:20:12
在Board的原型函數中新建一個Board是否好? – 2014-10-29 16:27:28
啊,不,不是。我以爲你的意思是一個外部點擊畫布onclick處理程序,我的錯誤。讓我發表更徹底的答案。 (它不一定總是壞的,但我認爲你是對的,想避免它。) – 2014-10-29 16:29:11