我正在开展一个项目,许多不同的公司都在同一个网站上工作。
主要开发人员已经设置了一个事件 - 让我们称之为init
- 这表明该页面已准备好执行我们的代码。
他们基本上就是这样称呼它:
$(window).trigger('init');
出于多种原因,我不会在这里讨论,我们宁愿尽可能避免在我们自己的代码中使用jQuery。我试着像这样绑定它:
window.addEventListener('init', function (event) {
alert('hehehehe');
});
但这似乎不起作用。但这很有效:
$(window).bind('init', function (event) {
alert('hehehehe');
});
默认情况下,jQuery是否使用特殊事件对象,您无法使用普通JS绑定?我只是在做些蠢事吗?
答案 0 :(得分:3)
docs for bind似乎包含答案:
任何字符串对于eventType都是合法的;如果字符串不是本机DOM事件的名称,则处理程序绑定到自定义事件。这些事件永远不会被浏览器调用,但可以使用.trigger()或.triggerHandler()从其他JavaScript代码手动触发。
没有名为'init'
的原生DOM事件:
http://en.wikipedia.org/wiki/DOM_events
因此“这些事件永远不会被浏览器调用,但可以使用.trigger()或.triggerHandler()从其他JavaScript代码手动触发”