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-04
JavaScript實現(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

