jQuery事件触发和js手动触发事件

之前在项目中遇到了需要手动触发事件的问题,比如鼠标双击操作,需要在键盘上按Enter键也有鼠标双击产生的效果,在jQuery中我们知道trigger可以在每一个匹配的元素上触发某类事件,比如$("input").trigger("dblclick"),就可以直接激发选中input的鼠标双击事件,而我们的项目中也引用了JqGrid,在JqGrid中有双击事件ondblClickRow,项目中代码如下:

ondblClickRow: function(rowid, iRow, iCol, e){
    //双击的效果
    ......
}
       鼠标双击之后对选中当前行进行操作,而且在 ondblClickRow函数中也需要传入许多参数,这是对鼠标双击的实现。在键盘上按Enter键时,只需要简单的对选中元素用trigger触发双击事件(dblclick)即可起到和JqGrid中ondblClickRow函数一样的效果。

       而在js中,并没有像jQuery封装好了相应的dblclick等事件,有时需要去手动创建js事件。代码如下:

//创建event的对象实例
var htmlEvent=document.createEvent('HTMLEvents'); 
//初始化事件参数,3个参数:事件类型,是否冒泡,是否阻止浏览器的默认行为 
htmlEvent.initEvent("input", true, true);
//js调用激发对应html对应当前event对象的相关事件
settings.this$[0].dispatchEvent(htmlEvent);
       这里就是手动创建了一个input事件,当元素需要时即可手动触发该事件。

     

        

你可能感兴趣的:(原创)