似乎代码如下:
$("#logo-events").trigger("remove");
和
一样$("#logo-events").remove();
这是预期的行为吗? 您可以在打开控制台的jquery网站上试用。
答案 0 :(得分:5)
来自.trigger()
方法的文档:
对于普通对象和窗口以外的DOM对象,如果是 触发的事件名称与对象上的属性名称匹配, 如果没有事件,jQuery将attempt to invoke the property as a method handler调用event.preventDefault()。如果不希望出现这种情况, 使用.triggerHandler()代替
.remove()
是DOM的原生函数:
remove()方法在调用时必须执行以下步骤:
- 如果上下文对象的父级为null,则终止这些步骤 - 从上下文对象的父对象中删除上下文对象。
将这两者结合起来就可以得到观察到的行为。
触发"删除" jQuery调用节点的本地if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
// ...
elem[ type ](); // elem["remove"]();
// ...
}
方法,然后删除该元素。
jQuery/event.js中的相关部分:
$client = SesClient::factory(array(
'user' => 'uuuuu',
'key' => 'aaaaa',
'secret' => 'bbbb',
'region' => 'us-east-1',
));
$client->version("2010-12-01");
//Now that you have the client ready, you can build the message
$msg = array();
//more code after this...
答案 1 :(得分:-1)
.trigger()只是一种在加载时触发动作的方法,而.remove()是一种可以置于触发动作(无论是自动还是手动)中的方法。如果你正在使用.trigger('remove'),那么首先要有这个元素似乎毫无意义。
答案 2 :(得分:-1)
我包含了触发器功能供您参考,但是这是预期的行为。 Trigger允许您手动(或不)执行事件,例如在您的情况下删除。这通常用于支持“on()”函数。例如
( "#logo-events" ).on( "click", function() {
alert( $( this ).text() );
});
$( "#logo-events" ).trigger( "click" );
这个块手动触发一个click函数,但它没有说的是,如果你只是在一个没有事件的元素上运行一个触发器,那么它只是一个函数来执行该函数。
例如:
$("logo-events").trigger("remove");
以下将运行。
希望有所帮助。