事件触发器就是用来触发某个元素下的某个事件,IE下fireEvent方法,高级浏览器(chrome,firefox等)有dispatchEvent方法。
一般我们在元素上绑定事件后,是靠用户在这些元素上的鼠标行为来捕获或者触发事件的,或者自带的浏览器行为事件,比如click,mouseover,load等等,有些时候我们需要自定义事件或者在特定的情况下需要触发这些事件。这个时候我们可以使用IE下fireEvent方法,高级浏览器(chrome,firefox等)有dispatchEvent方法。
例如在ie下看看这个例子:
02 | document.attachEvent( 'ondataavailable' , function (event) { |
03 | alert(event.eventType); |
05 | var obj=document.getElementById( "obj" ); |
07 | obj.attachEvent( 'onclick' , function (event) { |
08 | alert(event.eventType); |
11 | var event = document.createEventObject(); |
12 | event.eventType = 'message' ; |
14 | document.fireEvent( 'ondataavailable' , event); |
16 | document.getElementById( "test" ).onclick = function () { |
17 | obj.fireEvent( 'onclick' , event); |
fireEvent的官方文档:http://msdn.microsoft.com/en-us/library/ms536423(v=vs.85).aspx
createEventObject的官方文档:http://msdn.microsoft.com/en-us/library/ie/ms536390(v=vs.85).aspx
再看看高级浏览器(chrome,firefox等)的例子:
02 | document.addEventListener( 'ondataavailable' , function (event) { |
03 | alert(event.eventType); |
05 | var obj = document.getElementById( "obj" ); |
07 | obj.addEventListener( 'click' , function (event) { |
08 | alert(event.eventType); |
11 | var event = document.createEvent( 'HTMLEvents' ); |
14 | event.initEvent( "ondataavailable" , true , true ); |
15 | event.eventType = 'message' ; |
17 | document.dispatchEvent(event); |