javascript事件觸發器fireEvent和dispatchEvent
轉載自:https://www.cnblogs.com/tiger95/p/6962059.html
javascript事件觸發器fireEvent和dispatchEvent
事件觸發器就是用來觸發某個元素下的某個事件,IE下fireEvent方法,高階瀏覽器(chrome,firefox等)有dispatchEvent方法。
一般我們在元素上繫結事件後,是靠使用者在這些元素上的滑鼠行為來捕獲或者觸發事件的,或者自帶的瀏覽器行為事件,比如click,mouseover,load等等,有些時候我們需要自定義事件或者在特定的情況下需要觸發這些事件。這個時候我們可以使用IE下fireEvent方法,高階瀏覽器(chrome,firefox等)有dispatchEvent方法。
例如在ie下看看這個例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
function (event) {
"test" ).onclick = function () {
|
再看看高階瀏覽器(chrome,firefox等)的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
在實際封裝中沒這麼簡單,看了一下jQuery.event.trigger的原始碼,是通過模擬來實現了,給某元素繫結一個事件處理函式,如果有觸發事件的實際操作就會執行相應的事件處理函式,所以要達到事件觸發器的功能只要獲取到相應的事件處理函式然後執行。