【问题标题】:No original event on touchstarttouchstart 上没有原始事件
【发布时间】:2016-01-15 07:54:00
【问题描述】:

所以我使用的是 JQuery (1.11.3),但我一直被困在网上找不到任何东西的问题上。

基本上,我将一个处理程序绑定到一个“touchstart”事件并想要检索触摸事件的位置。 (注意:我也试过$('#id').on('touchstart'...

$(document).bind('touchstart','#main-button', function( e ){
    alert(Object.keys(e).join('\n'));
    alert(Object.keys(e.originalEvent).join('\n'));
    // awesome code here
})

这是我从第一个警报中得到的:

问题是 originalEvent(应该有我正在寻找的信息)只有属性 isTrusted

有谁知道我做错了什么?顺便说一句,我使用的是 Android 版 Chrome。

【问题讨论】:

    标签: javascript android jquery google-chrome touchstart


    【解决方案1】:

    originalEvent 确实有其他属性(请参阅MDN reference for touchstart event property list)。 Object.keys 只是不返回它们。这是因为属性要么是不可枚举的,要么是在原型链中的某个地方定义的。

    相反,您可以使用for...in 循环来获取对象和原型链中的任何可枚举属性。

    $(document).bind('touchstart','#main-button', function( e ){
        alert(Object.keys(e).join('\n'));
        var keys = "";
        for(key in e.originalEvent){
           keys+=key+"\n";
        }
        alert(keys);
        // awesome code here
    })
    

    【讨论】:

    • 谢谢! :) 我太相信我的警报了哈哈。我不知道Objects.keys() 可以省略一些属性。该死的,我想念我手机上的console.log()
    • 你不能使用 chrome://inspect 来查看你的应用吗? link to remote-debugging on developers.google.com
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多