2015-02-19 2 views
0

Я учусь холст и HTML5Ошибка при добавлении listners событий на холст

Я хотел, чтобы запустить функцию, когда холст щелкнул, но мой код не работает, пожалуйста, помогите. Мой код выглядит следующим образом

<center><canvas id="mycanvas"></canvas></center> 
<script type="text/javascript"> 
    Canvas = function(canvasel,width,height) 
       { 
        this.el = canvasel; 
        this.el.width = width; 
        this.el.height = height; 
        this.ctx = canvasel.getContext("2d"); 

       }  


    var canvas = new Canvas(document.querySelector("#mycanvas"),300,300);  


    canvas.addEventListener('click', function() { alert('gg') }, false); 
    canvas.ctx.moveTo(50,50); 
    canvas.ctx.lineTo(250,250);    
    canvas.ctx.stroke(); 
    canvas.ctx.closePath(); 
    canvas.ctx.fillRect(0,0,100,100); 


</script> 

Может кто-нибудь сказать мне, где я буду неправильно?

+0

'canvas.el.addEventListener ('нажмите', функция() {Alert ('GG')}, ложь);' ... Добавить EventListener на DOM целевом элементе .. –

+0

, который помог мне У меня теперь есть еще один вопрос, а не предупреждение. Я хочу подключить его к функции, которая добавлена ​​в скрипт, как это сделать? Я попробовал
canvas.el.addEventListener ('click', functionname(), false);
но он не работал – user3924970

ответ

0

Вы должны добавить прослушиватель событий в элемент DOM, который вы передаете в свой конструктор Canvas.

Таким образом, вместо того, чтобы делать:

canvas.addEventListener('click', function() { alert('gg') }, false); 

Вы должны сделать:

canvas.el.addEventListener('click', function() { alert('gg') }, false); 
+0

, который помог мне У меня теперь есть еще один вопрос вместо предупреждения. Я хочу подключить его к функции, добавленной в скрипт, как я должен это делать? Я попробовал canvas.el.addEventListener ('click', functionname(), false); но он не работал – user3924970

+0

Просто выполните: canvas.el.addEventListener ('click', functionname, false); Это означает, что вы передадите ссылку на функцию. Если вы добавите «()», вы просто передадите результат функции, которая, скорее всего, просто недействительна. – Pandafox

0

сначала вы должны сделать что-то вроде этого,

canvas.el.addEventListener('click', function() { alert('gg') }, false); 

Теперь, когда вы спросили, здесь это то, что вы хотите

http://jsfiddle.net/oz94z8jn/

function somefunc(){ 
alert("try me"); 
} 
canvas.el.addEventListener('click', somefunc, false);