为什么事件对象与单击事件和触发器单击不同?

时间:2013-10-10 00:36:56

标签: javascript jquery

当我这样做时,事件对象是不同的:

$('section#top10 ul#periodes li').click(function (e) {

当我这样做时:

$('section#top10 ul#periodes li').trigger('click') {

我知道触发器函数触发第一个函数,但“e”参数与两个方法不同。使用第一种方法,我可以访问srcElement,但是使用触发器,对象属性不一样。我想知道为什么当调用相同的函数时,这两个参数是不同的。

1 个答案:

答案 0 :(得分:1)

实际上,当用户点击某个元素时,该事件会带有pageX/pageYclientX/clientY之类的鼠标位置,但是使用触发器以编程方式触发事件,因为{{1在没有鼠标交互的情况下触发事件,这是一个很大的区别,至少我能想到。这就是click对象在两种情况下都不同的原因,这是有道理的,IMO。

更新:

换句话说,它不是真正的点击事件,而是对该事件的模拟,在这种情况下,它是一个量身定制的和平,例如,这是e/eventwith example的原型,并且在MDN),与initMouseEvent

一起使用
createEvent

这用于模拟香草object.initMouseEvent (eventName, bubbles, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget); 中的鼠标事件(在不同的浏览器中可能会有所不同),也可以查看this,所以在JavaScript的情况下(事件对象由jQuerytrigger在使用jQuery时为跨浏览器支持构建的定制对象,它与真实trigger事件中的对象不同,完全是两个不同的对象。