JS:事件如何?触摸属性工作
JS: How does event.touches property work?
我不明白如何使用事件。触动产权。例如,要获得iPad/iPhone上的手指数,你应该使用
event.touches.length
那么为什么这个示例代码不工作?
$('.image').bind('touchstart', function(event) {
alert(event.touches.length);
});
但这是工作:
$('.image').bind('touchstart', function() {
alert(event.touches.length);
});
难道不应该反过来吗?
在第二种情况下,您将退回到浏览器的全局(和原始)event
对象,而不是特定于jquery的对象(在支持全局event
的浏览器上,并非所有浏览器都支持) —例如,Firefox就没有这样的功能 因为这是微软的东西,只有一些其他公司复制了)。
这听起来像jQuery没有传递touches
属性在其自定义事件对象。正如在事件对象的文档中所描述的,你可以在你的第一个例子中使用event.originalEvent
来访问它所具有的"特殊属性",同时仍然获得jQuery规范化事件对象的好处,例如:
$('.image').bind('touchstart', function(event) {
alert(event.originalEvent.touches.length);
});
…或者你可以告诉jQuery复制该属性,在脚本开头执行一次:
jQuery.event.props.push("touches");
…因此,您的第一个示例应该开始工作。
旁注:如果你不使用jQuery Touch,你可以看看它。我的猜测是,除了它所做的其他事情之外,它还添加了上面所示的touches
属性(但这只是猜测)。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 触摸移动时切换到新元素
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在选项卡上定义属性'的主窗口对象
- 锚点元素的href属性自动更改
- JS:事件如何?触摸属性工作