上篇不完整的介绍了一事件模拟机制(诱发是simulate的翻译,在
Professional JavaScript for Web Developers这本书的中文版中翻译为模拟),后来找到了一个
jquery.simulate插件,对事件的模拟做了一个精简的封装。
先看看怎么使用:
<input type="text" id="txt1" name="" value="abc" />
<input type="button" id="btnSimulate" name="" value="Simulate" />
javascript:
$(function(){
$("#txt1").keyup(function(e){
alert(e.keyCode);
});
$("#btnSimulate").click(function(){
$("#txt1").simulate("keyup",{
keyCode:68
});
});
});
用btnSimulate的点击事件能模拟txt1的keyup事件,uHHHm,还不错。
第一个参数是事件类型
第二个参数是事件参数:默认为
{
bubbles: true, cancelable: (type != "mousemove"), view: window, detail: 0,
screenX: 0, screenY: 0, clientX: 0, clientY: 0,
ctrlKey: false, altKey: false, shiftKey: false, metaKey: false,
button: 0, relatedTarget: undefined
}
与标准的DOM Event事件属性一致。
demo下载