Обяжите событие формировать на холсте

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

<html>
    <head>
    <script type="application/javascript">
    function draw() {   
        var canvas = document.getElementById("canvas");
        var ctx = canvas.getContext("2d");      
        ctx.fillStyle = "rgb(200,0,0)";
        var rec = ctx.fillRect (0, 0, 55, 50);

        rec.onclick = function(){
            alert('something');
        }
    }
    </script>
    </head>
    <body onLoad="draw()">
        <canvas id="canvas" width="300" height="300"></canvas>
    </body>
</html>
5
задан Ben Shelock 9 May 2010 в 15:51
поделиться

2 ответа

Поместите обработчики событий на элемент холста, а затем используйте положение мыши, чтобы решить, на какой концептуальной части холста происходит событие.

Я не так много играл с canvas, но не удивлюсь, если уже существуют библиотеки, которые помогают управлять делегированием событий таким воображаемым элементам.

4
ответ дан 13 December 2019 в 19:23
поделиться

Похоже, вам следует использовать svg, поскольку он позволяет добавлять слушателей событий для фигур. Для начала я бы рекомендовал посмотреть raphaeljs.com.

3
ответ дан 13 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: