实现 $(el).trigger('my-event', {some: 'data'});在本机 JS 中



如果您能帮助我实现$(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');
    }

最新更新