javascript觸發(fā)模擬鼠標點擊事件
事件觸發(fā)器就是用來觸發(fā)某個元素下的某個事件,IE下fireEvent方法,高級瀏覽器(chrome,firefox等)有dispatchEvent方法。
一般我們在元素上綁定事件后,是靠用戶在這些元素上的鼠標行為來捕獲或者觸發(fā)事件的,或者自帶的瀏覽器行為事件,比如click,mouseover,load等等,有些時候我們需要自定義事件或者在特定的情況下需要觸發(fā)這些事件。這個時候我們可以使用IE下fireEvent方法,高級瀏覽器(chrome,firefox等)有dispatchEvent方法。
例如在ie下看看這個例子:
//document上綁定自定義事件ondataavailable document.attachEvent('ondataavailable', function (event) { alert(event.eventType); }); var obj=document.getElementById("obj"); //obj元素上綁定click事件 obj.attachEvent('onclick', function (event) { alert(event.eventType); }); //調用document對象的createEventObject方法得到一個event的對象實例。 var event = document.createEventObject(); event.eventType = 'message'; //觸發(fā)document上綁定的自定義事件ondataavailable document.fireEvent('ondataavailable', event); //觸發(fā)obj元素上綁定click事件 document.getElementById("test").onclick = function () { obj.fireEvent('onclick', event); };
fireEvent的官方文檔
createEventObject的官方文檔
再看看高級瀏覽器(chrome,firefox等)的例子:
//document上綁定自定義事件ondataavailable document.addEventListener('ondataavailable', function (event) { alert(event.eventType); }, false); var obj = document.getElementById("obj"); //obj元素上綁定click事件 obj.addEventListener('click', function (event) { alert(event.eventType); }, false); //調用document對象的 createEvent 方法得到一個event的對象實例。 var event = document.createEvent('HTMLEvents'); // initEvent接受3個參數(shù): // 事件類型,是否冒泡,是否阻止瀏覽器的默認行為 event.initEvent("ondataavailable", true, true); event.eventType = 'message'; //觸發(fā)document上綁定的自定義事件ondataavailable document.dispatchEvent(event); var event1 = document.createEvent('HTMLEvents'); event1.initEvent("click", true, true); event1.eventType = 'message'; //觸發(fā)obj元素上綁定click事件 document.getElementById("test").onclick = function () { obj.dispatchEvent(event1); };
在實際封裝中沒這么簡單,看了一下jQuery.event.trigger的源碼
是通過模擬來實現(xiàn)了,給某元素綁定一個事件處理函數(shù),如果有觸發(fā)事件的實際操作就會執(zhí)行相應的事件處理函數(shù),所以要達到事件觸發(fā)器的功能只要獲取到相應的事件處理函數(shù)然后執(zhí)行。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
用表格輸出1-1000之間的數(shù)字實現(xiàn)代碼(附特效)
本文將介紹下用表格輸出1-1000之間的數(shù)字同時附有特效,感興趣的朋友可以參考下哈,希望對你有所幫助2013-04-04JavaScript實現(xiàn)漢字轉換為拼音的庫文件示例
這篇文章主要介紹了JavaScript實現(xiàn)漢字轉換為拼音的庫文件,結合具體實例分析了JSPinyin庫文件與簡單使用技巧,需要的朋友可以參考下2016-12-12根據(jù)后端返回的json數(shù)據(jù)快速生成ts類型的實現(xiàn)代碼
在前端開發(fā)中,我們通常需要處理來自后端或其他數(shù)據(jù)源的 JSON 數(shù)據(jù),這些數(shù)據(jù)可能非常復雜,包含不同類型的屬性,甚至嵌套對象和數(shù)組,為了更好地使用這些數(shù)據(jù),我們希望將其轉換為TypeScript類型定義,以獲得類型檢查和代碼智能提示的好處2023-10-10