【问题标题】:Hammer.js doesn't workHammer.js 不起作用
【发布时间】:2014-10-10 17:59:56
【问题描述】:

我正在使用 Hammer.js,我已经包含了 Hammer 和 Hammer JQuery 插件,如下所示:

<script src='res/stat/js/hammer.js'></script>
<script src='res/stat/js/jquery.hammer.js'></script>

现在,通过这段代码,我试图让双击工作:

<script>
    var element = document.getElementsByClassName('snap_item');
    var hammertime = Hammer(element).on("doubletap", function(event) {
        alert('hello!');
    });   
</script>

类名为“snap_item”的元素存在且拼写正确。 Hammer.js 和 JQ 插件的路径也是正确的。我在 iPhone 5S 上测试过,双击该元素时它没有任何反应。

有人知道这里出了什么问题吗?我也包含了 JQuery V2。这是造成问题的原因吗?

【问题讨论】:

    标签: javascript jquery hammer.js


    【解决方案1】:

    document.getElementsByClassName 返回一个元素数组。 Hammer 构造函数只能采用一个元素。单独初始化每个:

    var elements = document.getElementsByClassName('snap_item');
    
    [].slice.call(elements).forEach(function(element) {
        var hammertime = new Hammer(element);
        hammertime.on('doubletap', function(event) {
             alert('hello!');
        });
    });
    

    JSFiddle 演示:http://jsfiddle.net/nw6dvgck/

    【讨论】:

    • 由于某种原因它不起作用。在 JSFiddle 上它可以工作,但是当我复制完全相同的代码时,它就不起作用了。
    • 你用的是最新的hammer.js吗?我没有包括 jQuery 锤子。
    • 是的,它是最新的 Hammer.js
    • 对我来说在 jsfiddle 中工作。我不明白整个例子,但谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多