Jquery .trigger()不会触发自定义事件

Jquery .trigger()不会触发自定义事件,jquery,javascript-events,Jquery,Javascript Events,使用jQuery转到任意页面。打开控制台。键入以下命令: monitorEvents(document); $("body").trigger("custom"); 这将显示文档看到的所有事件。如果在页面上移动鼠标,将看到mousemove事件 现在输入: $("body").trigger("click"); 您应该可以在monitorEvents的控制台中看到click事件 现在尝试以下命令: monitorEvents(document); $("body").trigger("c

使用jQuery转到任意页面。打开控制台。键入以下命令:

monitorEvents(document);
$("body").trigger("custom");
这将显示文档看到的所有事件。如果在页面上移动鼠标,将看到mousemove事件

现在输入:

$("body").trigger("click");
您应该可以在monitorEvents的控制台中看到click事件

现在尝试以下命令:

monitorEvents(document);
$("body").trigger("custom");
该事件现在确实显示在控制台中。至少对我来说不是

似乎如果我使用触发器触发一个正常事件,它会工作,但对于自定义事件,它不会被触发。为什么?

你可能只需要先看看。尝试: var customEvent=新的Eventcustom;
原因几乎与$'body'。触发'mouseup';什么也没表现出来;该特定事件没有事件侦听器

您需要首先附加事件侦听器。jQuery构造自己类型的事件对象

$('body').on('whatever', function (e) {
  window.console.log(e);
});
现在$'body'。触发'whatever';会有用的


如果您想深入了解一些普通JavaScript,下面是事件文档:

jQuery在内部实现自定义事件,而不是通过浏览器的事件处理机制。