移动设备上的画布javascript事件

移动设备上的画布javascript事件,javascript,events,canvas,mobile,dom-events,Javascript,Events,Canvas,Mobile,Dom Events,我实际上触发了所有这些事件,但它们似乎都不适用于移动设备。画布实际上是720x1000px,并不覆盖所有页面 canvas.addEventListener('mousedown',警报); canvas.addEventListener('mousemove',alert); canvas.addEventListener('mouseup',alert); canvas.addEventListener(“touchstart”,警报); canvas.addEventListener(“触

我实际上触发了所有这些事件,但它们似乎都不适用于移动设备。画布实际上是720x1000px,并不覆盖所有页面

canvas.addEventListener('mousedown',警报);
canvas.addEventListener('mousemove',alert);
canvas.addEventListener('mouseup',alert);
canvas.addEventListener(“touchstart”,警报);
canvas.addEventListener(“触摸端”,警报);
canvas.addEventListener(“触摸移动”,警报);
canvas.addEventListener(“pointerup”,警报);
canvas.addEventListener(“pointerdown”,警报);
canvas.addEventListener(“pointermove”,警报);
问题是由事件侦听器引起的还是由画布引起的?我该怎么解决呢

只在手机上

通过从桌面检查,事件侦听器出现了一个问题,当您运行它并触发任何事件时,它会抛出以下错误:

TypeError:对未实现接口窗口的对象调用了“警报”。


问题是,您的
警报是什么

  • 如果它是您定义并调用的自定义函数
    alert()
    ,最好更改名称,因为它已经存在,这是一个
  • 如果这是真的,那就不是指 函数,您需要将引用作为回调传递给函数。如果要调用它,需要将其包装在函数引用(匿名或命名引用)中,并将其作为回调传递

  • 在事件侦听器中设置回调的不同方法
    • 通过匿名函数:

      canvas.addEventListener('mousemove', function(){
          alert('This is an alert');
      });
      
    const canvas=document.getElementById('canvas');
    addEventListener('mousemove',function(){
    警报(“这是警报”);
    });
    
    #画布{
    背景颜色:绿色;
    }