谁能告诉我为什么该功能无法在Firefox中执行。除此功能外,整个文件中的其余Javascript函数均能正常工作(它不会执行,控制台中不会出错)。我怀疑这是pageX属性,但是事实并非如此。

var prevX = 0;
var i = 0;
var drgleft = 0;
var drgright = 0;


function sequence_1(event){
    if(prevX == 0){
        prevX = event.pageX;
        return false;
    }
    //drag left
    if(prevX > event.pageX){
        console.log('dragged left');
        drgleft++;
        if(drgleft == 2){
            drgleft = 0;
            i--;
            if(i < 0){
                i = 30; //for optimization reasons, input the cache.length value manually (this avoids unnecessary errors in the console and laggy framerate as a result).
            }
            document.getElementById("TheBigOne").src = cache[i].src; //use console.log(i); as a method of verifying that the code is executing correctly
        }
    }
    else if(prevX < event.pageX){
        console.log('dragged right');
        drgright++;
        if(drgright == 2){
            drgright = 0;
            i++;
            if(i > 30){ //for optimization reasons, input the cache.length value manually (this avoids unnecessary errors in the console and laggy framerate as a result).
                i=0;
            }
            document.getElementById("TheBigOne").src = cache[i].src;
        }
    }
    else{
    }
    prevX = event.pageX
}


编辑:

在我的第一篇文章中,我没有包含调用该函数的相关HTML代码,对此我深表歉意,并将在下面实现。

 <!DOCTYPE html>
    <html>
       <body>
          <div class="The_main_event" draggable = "true" ondrag="sequence_1(event)" id = "GD">

              <img src="file:///C:/Users/Harry/Desktop/Website/Web_aeroplane/Web%20Test.0031.png" id="TheBigOne">

           </div>
    </body>
  </html>

最佳答案

是UIEvent还是MouseEvent?

https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/pageX

https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageX

UIEvents不是标准的,并且上面链接的文档将Firefox作为未知兼容性。

我猜您何时说它不会运行,您的意思是,它无法按预期运行。在您的情况下,它看起来要么返回false,要么除了尝试更新prevX外什么也不做。如果event.pageXundefined,因此prevXundefined,它将导致您的函数无效,并且似乎无法运行。

编辑:
看到更新后,看起来好像是因为您正在监听的事件没有pageX。请参阅此处以获得文档:
https://developer.mozilla.org/en-US/docs/Web/Events/drag

这也可能会帮助FireFox onDrag Pagex PageY always zero ;(

09-17 09:25