Javascript 分派click事件并保留击键修改器

Javascript 分派click事件并保留击键修改器,javascript,javascript-events,onclick,modifier-key,Javascript,Javascript Events,Onclick,Modifier Key,我想监听特定元素上的点击事件,然后将其发送到link元素,同时记住元键是否为hold 例如: 假设我有一个元素表。当用户单击一行时,我希望跟随一个链接,但如果用户有自己的链接,我希望在新选项卡中打开该链接⌘ /按下ctrl键 看起来很简单,但我发现这很棘手。。。(因为我没有成功!) 提前感谢您的帮助 DOM事件API已经提供了您所需要的一切,假设您只需要记住合法用户操作中的修改器键 使用捕获事件时,只需获取参数,即传递给处理程序函数的DOMEvent实例,然后使用以下命令将其重新发送到目标元素:

我想监听特定元素上的点击事件,然后将其发送到link元素,同时记住元键是否为hold

例如: 假设我有一个元素表。当用户单击一行时,我希望跟随一个链接,但如果用户有自己的链接,我希望在新选项卡中打开该链接⌘ /按下ctrl键

看起来很简单,但我发现这很棘手。。。(因为我没有成功!)


提前感谢您的帮助

DOM事件API已经提供了您所需要的一切,假设您只需要记住合法用户操作中的修改器键

使用捕获事件时,只需获取参数,即传递给处理程序函数的
DOMEvent
实例,然后使用以下命令将其重新发送到目标元素:)

实际上,
DOMEvent
实例封装了它的源环境。更具体地说,a知道在发射时按下了哪些键


演示:在按住的同时尝试单击中的链接⌘ (如果不是在Mac上,则按ctrl键),例如

以下是使用的代码,供完整参考:

var button = document.getElementById('source'),
    target = document.getElementById('target');

function handler(evt) {
    target.dispatchEvent(evt); // that's all the magic it takes
}

button.addEventListener(
    'click', // listen to a click event
    handler,
    false // no capture, i.e. do not catch events before children
);​


您可能也会发现有用的:)

我已经尝试过了,但您不知道这个错误:未捕获错误:DISPATCH\u REQUEST\u ERR:DOM Events Exception 1?@NimaIzadi我只在Safari 5中测试过,它在Safari 5中工作。事实上,Chrome21抛出一个
DISPATCH\u REQUEST\u ERR
…而FF 14抛出
NS\u ERROR\u非法\u值。很有趣。我正试图进行更多的调查。
DISPATCH\u REQUEST\u ERR
源于事件发生的事实。我尝试了
stopPropagation()
,但这并没有改变任何事情。因此,我只想到两种方法。首先是通过
createEvent
和(编写起来很烦人,但可以在helper函数中)克隆事件;由于
isTrusted
属性……(参见
isTrusted
),这可能不会按要求在后台打开链接。不过,这应该在每个浏览器中进行测试。第二种方法也需要测试,但有点难看:添加一个超时,并在事件完成冒泡后
dispatch
事件。太棒了!setTimeout可以在Webkit(Chrome 21和Safari 6)上明显工作,但不能在FF上工作。它在FF上没有任何作用。。。(既不抛出
NS\u错误\u非法\u值