【问题标题】:Javascript override user mouse eventJavascript 覆盖用户鼠标事件
【发布时间】:2012-09-13 23:00:57
【问题描述】:

我有一些 javascript 允许用户使用鼠标移动东西,因此用户可以单击并拖动东西,这一切正常,但我正在努力的是能够覆盖用户点击事件。

所以我想做的是,如果用户将项目移动到某个位置,我想停止单击并按住事件,这意味着用户将不得不再次重新选择项目并单击并再次拖动。

你能从 javascript 覆盖用户的鼠标操作吗?看起来很简单,但我无法在我的 javascript 中找到停止鼠标按住事件的方法

【问题讨论】:

    标签: javascript mouse


    【解决方案1】:

    您可以尝试覆盖onmousedown 来存储鼠标坐标,如果鼠标位置没有改变(或者如果改变小于5 像素),则在onmouseup 上触发“真正的点击”事件。

    【讨论】:

      【解决方案2】:
      document.getElementById('myElement').addEventListener('click', function(e) {
          e.preventDefault(); // here is your override
          doSomethingElse();  // or not
      });
      

      IE 也一样,但使用attachEvent 而不是addEventListener

      【讨论】:

        【解决方案3】:

        也许您可以在 onclick 处理程序中放入一些逻辑来检查这种情况,而不是阻塞事件?

        例如,可能有几个属性来维护状态。您可以调用一个itemSelected,它必须是true,以便项目移动。然后,如果您将itemSelected 设置为false,则需要再次单击才能再次切换。

        【讨论】:

          猜你喜欢
          • 2021-11-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多