Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery事件构造函数_Javascript_Jquery_Events - Fatal编程技术网

Javascript jQuery事件构造函数

Javascript jQuery事件构造函数,javascript,jquery,events,Javascript,Jquery,Events,我已经和一些人一起工作过了,我开始浏览网页 我注意到的一件事是使用$.Event构造函数触发事件 在许多情况下,(例如引导模式),您会发现触发的事件如下: var e = $.Event('show'); this.$element.trigger(e); 我不明白为什么这比直接打电话好: this.$element.trigger('show'); 所以我想知道使用jQuery事件构造函数的优点是什么。我在文档中读到,您可以将任意属性附加到事件,这对我完全有意义。但是,我不明白的是,如果

我已经和一些人一起工作过了,我开始浏览网页

我注意到的一件事是使用
$.Event
构造函数触发事件

在许多情况下,(例如引导模式),您会发现触发的事件如下:

var e = $.Event('show');

this.$element.trigger(e);
我不明白为什么这比直接打电话好:

this.$element.trigger('show');
所以我想知道使用jQuery事件构造函数的优点是什么。我在文档中读到,您可以将任意属性附加到事件,这对我完全有意义。但是,我不明白的是,如果您根本不向事件添加任何属性,为什么使用构造函数可能会有好处

有人能给我解释一下为什么
$.Event
构造函数比使用事件字符串调用触发器更有优势吗

非常感谢

如果您以后想为活动添加属性,那么它会更灵活一些;它可以帮助您了解事件触发后的状态,例如,如果有人呼叫或

除此之外,jQuery只需获取事件类型(
string
),将其包装在
$.event
对象中并对其进行规范化。以下是发生这种情况的jQuery的相关源代码:

event = typeof event === "object" ?
     // jQuery.Event object
     event[ jQuery.expando ] ? event :
     // Object literal
     jQuery.extend( jQuery.Event(type), event ) :
     // Just the event type (string)
     jQuery.Event(type);

在查看引导源代码之后,我相信您一定是指:

var that = this
    , e = $.Event('show')

this.$element.trigger(e)

if (this.isShown || e.isDefaultPrevented()) return

他正在定义
e
,以便稍后检查是否使用
e.isDefaultPrevented()

阻止了默认操作。虽然这里的一切都是正确的,但它没有提到在引导模式插件中使用
$.Event
。在bootstrap模式中,他定义了事件对象,以便稍后可以检查
isDefaultPrevented
。感谢João的回答,这让我对jQuery如何处理事件有了更多的了解,@Fauntleroy在bootstrap的上下文中得到了正确的解释。再次感谢!啊。。。你完全正确。我不知道我怎么会错过。谢谢!