【问题标题】:onmousemove triggers only on rightclickonmousemove 仅在右键单击时触发
【发布时间】:2014-09-19 08:38:01
【问题描述】:

我对 onmousemove 有疑问。我创建了一个 div 元素并向其中添加了onmousemove="doSomething()",但它不起作用。到目前为止,我一直尝试使用addEventListener()object.onmousemove=doSomething() 来完成它,并且我已经将重要代码从w3schools 复制到我的页面末尾,它可以正常工作。

我发现两个代码都会触发一个事件,该事件工作正常 - 当鼠标移动时,所有函数都按应有的方式执行 - 当我使用 onmousemove 右键单击​​元素时。如果我尝试使用事件侦听器,也会发生同样的情况。

关于如何解决这个问题的任何想法?

编辑:我现在发现真正的问题是,页面作​​为其他页面表单中的操作加载。 (创建一个 onmousemove 工作的文件,然后尝试使用相同的表单加载它)该表单正在上传文件 - 图像,我正在使用 xampp。

【问题讨论】:

  • 我已经从 w3schools 复制了重要代码如果你想好好学习,请不要参考那个网站
  • w3schools 参考只是在我的 Chrome 上运行的代码。现在我尝试在正文的末尾添加一个 iframe 并删除了它的 onload。还是一样 - 仅适用于右键单击。我正在使用 XAMPP 顺便说一句,该文件是 .php 并在表单提交(发布)之后显示。

标签: javascript php html xampp


【解决方案1】:

首先你应该分配函数而不是结果

  -> object.onmousemove=doSomething    // no brackets

添加事件监听器也是如此

 object.addEventListener('mousemove', doSomething , false);

【讨论】:

  • 这不是答案。对不起。 :D
【解决方案2】:

嘿试试这个来捕捉页面上的鼠标移动事件

var xPrev = 0;
jQuery(document).ready(function(){

   $(document).mousemove(function(e){
       xPrev<e.pageX ? $('#lr').html("right") : $('#lr').html("left");
       xPrev=e.pageX;
      $('#status').html(e.pageX +', '+ e.pageY);

   }); 
})

DEMO

【讨论】:

  • OP 从未提及 jQuery
  • 好吧,抱歉,我没有看到问题被标记为 javascript。
  • 谢谢,但我还没学过 jQuery jet,因为我可以用 javascript 做任何事情。我知道它“更难”,但这没关系。在 javascript 中,我确实尝试将事件添加到文档中 - document.addEventListener ...- 或类似的东西。结果相同。
猜你喜欢
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多