【发布时间】:2021-10-27 02:55:58
【问题描述】:
如何创建一个完全独立的新事件对象,它包含与给定事件对象e 完全相同的所有属性。到目前为止,我已经尝试了以下但没有运气:
function myHandler(e) {
// ...
e = e.originalEvent;
// method 1
var e2 = jQuery.extend(true, {}, e);
// method 2
var e2 = JSON.parse(JSON.stringify(e));
// ...
}
编辑:我将添加更多细节以帮助澄清。与question 非常相似,我正在尝试这样做:div.dispatchEvent(e.originalEvent),但这样做会导致:
DISPATCH_REQUEST_ERR:DISPATCH_REQUEST_ERR:DOM 事件异常 1
所以为了避免这种情况,我需要复制事件对象。然而,这个事件对象不是一个特定的对象(即,有时e 是touchstart、touchmove 或touchend),因此如果我可以得到一个通用的克隆函数会更容易只是对特定属性进行硬编码。我所说的“没有运气”的意思是,通过尝试上述方法并通过调度函数发送它,我得到了错误。希望这有助于澄清一点。
【问题讨论】:
-
已更新。抱歉,有错别字
-
没有
e = e.originalEvent的jQuery.extend(true, {}, e)怎么样? “没有运气”是什么意思? :) -
"DISPATCH_REQUEST_ERR:如果 Event 对象已经在树中分派。"嗯……
-
为什么需要克隆一个事件?
-
就像我说的,我试图将事件传递给另一个元素,这也类似于我发布的示例链接。你读过我的更新吗? :)
标签: javascript jquery jquery-events