使用jQuery模拟按键
使用jQuery,如何在单击链接时模拟(触发?)KeyPress? 例如,当用户点击以下链接:
<a id="clickforspace" href="#">Click Here</a>
然后,通过点击链接,就好像他们按下键盘上的“空格键”。
像这样的事情,我假设:
$("#clickforspace").click(function(e) { e.preventDefault(); //... Some type of code here to initiate "spacebar" // });
任何想法如何实现这一目标?
jQuery的按键事件就是为了做这样的工作。 您可以通过将string“keypress”传递给.trigger()来触发事件。 但更具体的,你可以实际上传递一个jQuery.Event对象(指定types为“keypress”),并提供你想要的任何属性,例如键码是空格键。
http://docs.jquery.com/Events/trigger#eventdata
阅读上述文件了解更多细节。
我相信这是你要找的东西:
var press = jQuery.Event("keypress"); press.ctrlKey = false; press.which = 40; $("whatever").trigger(press);
从这里 。
另一种select:
$(el).trigger({type: 'keypress', which: 13, keyCode: 13});
你可以试试这个SendKeys的jQuery插件:
http://bililite.com/blog/2011/01/23/improved-sendkeys/
$(element).sendkeys(string)
在input,textarea或其他contenteditable = true元素的插入点插入string。 如果插入点当前不在元素中,它会记住最后一次调用sendkeys时插入点的位置(如果插入点从不在元素中,则会追加到末尾)。
这工作:
var event = jQuery.Event('keypress'); event.which = 13; event.keyCode = 13; //keycode to trigger this for simulating enter jQuery(this).trigger(event);
如果您想要将浏览器的操作模拟为“撤销”或“重做”,您应该尝试以下操作:
function doUndo(){ document.execCommand('undo', false, null); } function doRedo(){ document.execCommand('redo', false, null); }