主動驅動事件執行 createEvent

2022-05-09 07:48:10 字數 1908 閱讀 8186

1. createevent(eventtype)

引數:eventtype 共5種型別:

events :包括所有的事件. 

htmlevents:包括 'abort', 'blur', 'change', 'error', 'focus', 'load', 'reset', 'resize', 'scroll', 'select', 

'submit', 'unload'. 事件

uievents :包括 'domactivate', 'domfocusin', 'domfocusout', 'keydown', 'keypress', 'keyup'.

間接包含 mouseevents. 

mouseevents:包括 'click', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup'. 

mutationevents:包括 'domattrmodified', 'domnodeinserted', 'domnoderemoved', 

'domcharacterdatamodified', 'domnodeinsertedintodocument', 

'domnoderemovedfromdocument', 'domsubtreemodified'. 

2. 在createevent後必須初始化,為大家介紹5種對應的初始化方法

htmlevents 和 通用 events:

initevent( 'type', bubbles, cancelable )

uievents :

inituievent( 'type', bubbles, cancelable, windowobject, detail )

mouseevents: 

initmouseevent( 'type', bubbles, cancelable, windowobject, detail, screenx, screeny, 

clientx, clienty, ctrlkey, altkey, shiftkey, metakey, button, relatedtarget )

mutationevents :

initmutationevent( 'type', bubbles, cancelable, relatednode, prevvalue, newvalue, 

attrname, attrchange ) 

3. 在初始化完成後就可以隨時觸發需要的事件了,為大家介紹targetobj.dispatchevent(event)

使targetobj物件的event事件觸發

需要注意的是在ie 5.5+版本上請用fireevent方法,還是瀏覽相容的考慮

4. 例子

//例子1  立即觸發滑鼠被按下事件

var fireonthis = document.getelementbyidx_x('someid');

var evobj = document.createevent('mouseevents');

evobj.initmouseevent( 'click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );

fireonthis.dispatchevent(evobj);

//例子2  考慮相容性的乙個滑鼠移動事件

var fireonthis = document.getelementbyidx_x('someid');

if( document.createevent ) 

else if( document.createeventobject )

驅動python python實現事件驅動

eventmanager事件管理類實現,大概就百來行 左右。encoding utf 8 系統模組 from queue import queue,empty from threading import class eventmanager def init self 初始化事件管理器 事件物件列表...

事件驅動與流程驅動

1 流程驅動 類似 一般就是主動輪詢 在幹活中還要分心 主動去找活幹 這樣有空餘的時間也完全浪費掉了 2 事件驅動 類似 比如公司有乙個oa系統 你幹完活的時候只需要看下oa系統有沒分配給你活 沒有可以幹自己的事 不用擔心還有其他事沒幹完 3者對比 採用警覺式者主動去輪詢 polling 行為取決於...

事件驅動之非同步事件

public void head private void raiseevent headedevent headedevent 所以我們只需在 裡raiseevent就可以了。其實很簡單,因為我們要實現的是同步的事件,我們只需要找到所有處理這個事件的實現類,然後呼叫所有就可以了。public in...