似乎代码如下:
$("#logo-events").trigger("remove");
Run Code Online (Sandbox Code Playgroud)
做同样的事情
$("#logo-events").remove();
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?您可以在打开控制台的jquery网站上试一试.
从.trigger()方法的文档:
对于普通对象和窗口以外的DOM对象,如果触发的事件名称与对象上的属性名称匹配,则如果没有事件处理程序调用event.preventDefault(),jQuery将尝试将该属性作为方法调用.如果不需要此行为,请改用.triggerHandler()
.remove() 是DOM的本机功能:
调用remove()方法时,必须运行以下步骤:
- 如果上下文对象的父级为null,则终止这些步骤.
- 从上下文对象的父对象中删除上下文对象.
将这两者结合起来就可以得到观察到的行为.当你触发"删除"时,jQuery会调用.remove()节点的本机方法,然后删除该元素.
jQuery/event.js中的相关部分:
if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
// ...
elem[ type ](); // elem["remove"]();
// ...
}
Run Code Online (Sandbox Code Playgroud)