我有以下代码:
<body>
<canvas id="canvas" height="300" width="300" style="border:1px solid" />
</body>
<script>
function maze(canvas){
this.ctx = canvas[0].getContext("2d");
canvas.mousedown(down);
}
function down(e){
alert(this.ctx);
}
$(document).ready(function(e){
var m = new maze($('#canvas'))
});
</script>
但是在down函数中this.ctx是未定义的,任何想法为什么? (是的,我正在导入jQuery 1.6.2)
答案 0 :(得分:1)
此处canvas
指向jquery对象,this
将指向迷宫实例。所以试试这个
function maze(canvas){
canvas.data("ctx", canvas[0].getContext("2d"));
canvas.mousedown(down);
}
function down(e){
alert($(this).data("ctx"));
}
$(document).ready(function(e){
var m = new maze($('#canvas'))
});