如果您能帮助我实现$(el).trigger('my-event',{some:'data'}),我将不胜感激;在原生js中(不使用jquery)
我能够在没有jquery的情况下实现绑定器
if (window.addEventListener) {
window.addEventListener(event, func, false);
}
else if (window.attachEvent) {
window.attachEvent(event, func);
}
我忘了提一下,它需要在IE8中得到支持更具体地说。我需要"我的事件"的自定义触发器,而不是本机触发器,如"点击"
使用EventEmitter:
var ee = new EventEmitter();
// Add a listener
ee.addListener('myCustomEvent', function(){
console.log(arguments) // yay!
});
// Emit custom event
ee.emitEvent('myCustomEvent', ['some', 'arguments'])
我发现当尝试从jQuery转换为Vanilla Javascript时,这个网站非常有用:http://youmightnotneedjquery.com/
$(el).trigger('change');
与相同
if (document.createEvent) {
var event = document.createEvent('HTMLEvents');
event.initEvent('change', true, false);
el.dispatchEvent(event);
} else {
el.fireEvent('onchange');
}