0

次のコードがあります。

<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 をインポートしています)

4

1 に答える 1

1

ここでcanvasは jquery オブジェクトを指しており、thismaze インスタンスを指します。だからこれを試してください

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'))   
}); 
于 2011-08-03T21:43:29.193 に答える