Jquery模拟键盘事件

2012年11月1日 由 楼长 留言 »

貌似用到的可能性不大。之前是为什么要这么做也忘了-.-!!!
貌似是写程序时后因为之前组件的一个触发在键盘上,而组件又不能随便改,现在想来,还是直接改组件的好!

document.getElementsByTagName("body").item(0).onkeydown = function(a){console.log(a.keyCode + "231123")}
e = jQuery.Event("keydown");
e.keyCode = 13;
$("body").trigger(e)

直接上代码模拟的是keydown事件,跟直接按键盘还有区别,触发函数必须加传入参数,否则读不到keyCode(function(){event.keyCode}),而键盘事件是可以的。想搞明白jQuery是怎么模拟浏览器事件的,可惜查不到,直接看jQuery的代码更是看到头大…再议吧…

广告位

3 条评论

  1. 楼长说道:

    IE使用函数fireEvent实现模拟事件
    其他浏览器通过
    var evt = document.createEvent( ‘HTMLEvents’ );
    // initEvent接受3个参数:
    // 事件类型,是否冒泡,是否阻止浏览器的默认行为
    evt.initEvent(event, true, true);
    element.dispatchEvent(evt);

    来实现,设置keyCode直接evt.keyCode = ?
    initEvent可以省略后边参数,不知道默认值是什么-。-

    要理解trigger或许可以参考http://stylechen.com/trigger.html

  2. 仲毅说道:

    流氓啥时来北京玩,教我写网页啊

发表评论