使用嵌套div滑动事件传播不起作用

时间:2017-03-29 15:40:47

标签: javascript jquery hammer.js

您好我有以下html结构:

<div class="container">

        <div class="scroller">
            <div id ="goldenPage" class="page active">              
                <div class="block text">
                    <div class="rich-text"></div>
                </div>
                <div class="block">
                    <div class="form"></div>
                </div>
                <div class="block">
                    <ul class="menu"></ul>
                </div>
            </div>
            <div id ="cachePage" class="page"></div>
        </div>

    </div>

如果我使用代码

将div上的滑动事件与类容器绑定在一起
var myElement = $(".container")[0];
            var hammertime = new Hammer(myElement);             
            hammertime.on("swiperight",function(){
                console.debug(" manage swiperight event.");                 
                });

如果我滑动什么都没发生(除非我在我的页面底部滑动,因为带有滚动类的内部div比父div更少的高度)。如果我使用类滚动器绑定div上的滑动,则滑动被正确绑定。 scrolller div使用jquery scrollpane插件绑定。 有什么想法吗?!

1 个答案:

答案 0 :(得分:0)

DEMO - 确保在document.ready事件后触发您的JavaScript / jQuery。

如果JavaScript在DOM中的元素可用之前触发,则您的JavaScript将找不到该元素,因此无法将(swiperight)事件绑定到该元素。

使用jQuery,可以通过将JavaScript代码包装在:

中来实现
$(function() {
    // Your code here.
    console.log("Ready!");
});