0

如何触发然后在香草JavaScript中处理事件?触发器然后处理JavaScript事件?

我曾尝试:

var fireOffAnEvent = function() { 
    // Dispatch the event. 
    var custom_event; // The custom event that will be created 

    if (document.createEvent) { 
     custom_event = document.createEvent("HTMLEvents"); 
     custom_event.initEvent("custom", true, true); 
    } else { 
     custom_event = document.createEventObject(); 
     custom_event.eventType = "custom"; 
    } 

    custom_event.eventMessage = "Hello events"; 

    document.createEvent ? document.dispatchEvent(custom_event) : document.fireEvent("on" + custom_event.eventType, 
                         custom_event); 
} 
fireOffAnEvent() 

这里是我如何试图处理事件:

document.addEventListener("custom", function(e) { 
    console.log(e.eventMessage); 
}); // Nothing happened 

document.addEventListener("HTMLEvents", function(e) { 
    console.log(e.eventMessage); 
}); // So tried ^, still nothing 

Plnkr:http://run.plnkr.co/Zqcdoj3W5z5w4ZQu/

+0

代码示例自定义事件(创建,发射和处理)在这里:https://开头developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events – jfriend00

回答

0

尝试注册听众火后您的活动。 (放在你的代码的最后)。然后,事件应该由他们妥善处理

+0

谢谢,那就是诀窍 – stackoverflowuser95

+0

太好了。你能否把它标记为正确答案?谢谢 –

0

试试这个它的工作原理

var fireOffAnEvent = function() { 
// Dispatch the event. 
var custom_event; // The custom event that will be created 

if (document.createEvent) { 
    custom_event = document.createEvent("HTMLEvents"); 
    custom_event.initEvent("custom", true, true); 
} else { 
    custom_event = document.createEventObject(); 
    custom_event.eventType = "custom"; 
} 

custom_event.eventMessage = "Hello events"; 

document.createEvent ? document.dispatchEvent(custom_event) : document.fireEvent("on" + custom_event.eventType, 
                        custom_event); 
} 
// add the listener first 
document.addEventListener("custom", function(e) { 
    console.log(e.eventMessage); 
}); 

// then invoke it 
fireOffAnEvent(); 

下面是测试环节http://jsfiddle.net/qikhan/x4r4B/

相关问题