yod*_*een 15 javascript jquery events javascript-events
为什么当我使用jQuery绑定事件对象时,我回来的事件对象与我使用addEventListener返回的事件对象不同?
这个jQuery绑定产生的事件对象没有targetTouches数组(除其他外),但addEventListener中的事件没有.是我还是不对的?
$(document).ready (function () {
$("#test").bind("touchmove", function (event) {
console.log(event.targetTouches[0].pageX);
// targetTouches is undefined
});
});
Run Code Online (Sandbox Code Playgroud)
与
$(document).ready (function () {
var foo = document.querySelectorAll('#test')
foo[0].addEventListener('touchmove', function (event) {
console.log(event.targetTouches[0].pageX);
// returns the correct values
}, false);
});
Run Code Online (Sandbox Code Playgroud)
CMS*_*CMS 24
那是因为jQuery使用自己的Event模型.
jQuery只是简单地将原始事件中的一些属性复制并规范化为您作为处理程序的第一个参数获得的事件对象.
复制的属性基于DOM Level 3 Events Spec.
要获取原始事件对象,您可以:
$(document).ready (function () {
$("#test").bind("touchmove", function (event) {
var e = event.originalEvent;
console.log(e.targetTouches[0].pageX);
});
});
Run Code Online (Sandbox Code Playgroud)
该originalEvent
属性是可访问的,它可以工作,但没有记录,你可以看到它是如何在jQuery.Event
构造函数的幕后设置的.
归档时间: |
|
查看次数: |
9534 次 |
最近记录: |