代码之家  ›  专栏  ›  技术社区  ›  Ryan Li

关于老鼠事件的问题

  •  1
  • Ryan Li  · 技术社区  · 16 年前

    我现在正在捕捉textarea元素上的鼠标单击事件。

    因为我必须在处理事件后停止传播,所以当我们使用中键单击文本区域时,插入符号不会像往常一样设置。但我需要在做进一步的工作之前设置它,所以我尝试手动调度鼠标事件。

    var evt = document.createEvent("MouseEvents");
    evt.initMouseEvent("click", true, true, window, 1, origEvt.screenX, origEvt.screenY,
        origEvt.clientX, origEvt.clientY, false, false, false, false, 0, null);
    origEvt.target.dispatchEvent(evt);
    ...
    

    这段代码试图模拟在相同位置的相同元素上单击鼠标左键。可以捕获已调度事件,但未设置插入符号。

    有人能指导我怎么做吗?

    1 回复  |  直到 16 年前
        1
  •  1
  •   bobince    16 年前

    伪造事件不会导致发生默认操作。你必须自己复制它们。

    在这种情况下,您必须使用 selectionStart selectionEnd

    现在还不清楚你想做什么的目的是什么,但你必须找到另一个解决办法。也许你可以允许默认的操作发生,但是在它发生后模糊文本区域,然后再将其重新聚焦?你还记得吗 选择开始 选择结束 属性,以便在稍后的任何时间点(如果位置可能同时更改)将焦点设置回原位。