Alt-单击带有Javascript的元素

Alt-click an element with Javascript

本文关键字:元素 Javascript 单击 Alt-      更新时间:2023-09-26

我知道有一些方法可以检测alt点击,但我很好奇 - 是否可以alt点击元素?

您可以调用click事件调用的函数,但假设我们正在处理一些系统,该系统动态生成函数并在呈现时将其放置在页面中(或其他一些疯狂的解释)。

这可以在香草JS中使用initMouseEvent完成:

event.initMouseEvent(type, canBubble, cancelable, view, 
                     detail, screenX, screenY, clientX, clientY, 
                     ctrlKey, altKey, shiftKey, metaKey, 
                     button, relatedTarget);

如您所见,参数 10 到 13 将修饰键应用于以编程方式触发的鼠标事件。 上面链接的 MDN 页面有一个关于如何实际使用initMouseEvent的小例子:

function simulateClick() {
    // create a new mouse event
    var evt = document.createEvent("MouseEvents");
    // initialize all the parameters of the event
    evt.initMouseEvent("click", true, true, window,
      0, 0, 0, 0, 0,
      false, false, false, false,  // ctrl, alt, shift, meta
      0, null);
    var cb = document.getElementById("checkbox");
    // actually fire the event on the `cb` element
    var canceled = !cb.dispatchEvent(evt);
    // if the event was cancelled...
    if(canceled) {
        //...
    }
}

请注意,较旧的IE版本仅支持initEvent,这似乎不允许修改键选项。

您可以手动触发事件。 对于您的情况 - 您可以尝试触发keydown事件和click事件。

这是使用 jQuery 触发事件的方法:

var e = jQuery.Event("keydown");
e.which = 9; // # Some key code value - in your case tab
$("input").trigger(e);

以下是触发点击的方式:

$("#target").click();

小提琴:http://jsfiddle.net/sagivo/Bdtpj/