我知道有很多方法可以检测到alt-click,但我很好奇 - 是否有可能点击一个元素?
你可以调用click事件调用的函数,但是假设我们正在处理一些动态生成函数的系统,并在渲染时将它放在页面中(或者其他一些疯狂的解释)。
答案 0 :(得分:2)
这可以使用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
,但似乎不允许使用修饰键选项。
答案 1 :(得分:1)
您可以手动触发事件。对于您的情况 - 您可以尝试触发keydown
事件和click
事件。
这是你用jQuery触发事件的方法:
var e = jQuery.Event("keydown");
e.which = 9; // # Some key code value - in your case tab
$("input").trigger(e);
这是你触发点击的方式:
$("#target").click();
JsFiddle :http://jsfiddle.net/sagivo/Bdtpj/