Javascript 主动派发事件
参考:
http://www.jb51.net/article/27971.htm
https://developer.mozilla.org/en-US/docs/DOM/element.dispatchEvent
例子:
function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if(canceled) { // A handler called preventDefault alert("canceled"); } else { // None of the handlers called preventDefault alert("not canceled"); } }
1. 创建事件
https://developer.mozilla.org/en-US/docs/DOM/document.createEvent
创建一个指定类型的事件。
语法:
var event = document.createEvent(type);
- eventis the created Event object.
- typeis a string that represents the type of event to be created. Possible event types include- "UIEvents",- "MouseEvents",- "MutationEvents", and- "HTMLEvents". See Notes section for details.
2. 根据不同的事件类型调用不同的初始化事件函数:
| Event Module | Event type to pass to createEvent | Method to be used to initialize the event | 
|---|---|---|
| DOM Level 2 Events | ||
| User Interface event module | "UIEvents" | event.initUIEvent | 
| Mouse event module | "MouseEvents" | event.initMouseEvent | 
| Mutation event module | "MutationEvents" | event.initMutationEvent | 
| HTML event module | "HTMLEvents" | event.initEvent | 
3. 事件派发
bool = element.dispatchEvent(event)
- elementis the- targetof the event.
- eventis an event object to be dispatched.
- The return value is falseif at least one of the event handlers which handled this event called preventDefault. Otherwise it returnstrue.
例子: https://developer.mozilla.org/samples/domref/dispatchEvent.html
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号