0

I have a DIV inside a page element of a sliding menu / navigator. I'm trying to capture Hammer events on this element but am only able to access "touch" events.

var hammer = Hammer(getElementById('myDiv'));
hammer.on('touch swipe', function(e){
   console.log(e); 
});

Is there something I'm missing, or does Onsen UI set specific things with Hammer that is interfering?

1 Answers1

1

Did you cancel default touch event? It worked for me.

var element = document.querySelector('.your-div');

element.ontouchmove = function(event) {
    if (!event.elementIsEnabled) {
        event.preventDefault();
    }
};

element.ontouchstart = function(event) {
    if (!event.elementIsEnabled) {
        event.preventDefault();
    }
};

element.ontouchend = function(event) {
    if (!event.elementIsEnabled) {
        event.preventDefault();
    }
};

var hammertime = Hammer(element).on("swiperight", function(event) {
    //do stuff
});
ataru
  • 401
  • 3
  • 6
  • Thanks. I think this makes sense. From the above I found that adding .hammer({prevent_default: true}) worked. Is this because the events are already being captured and stop propagating? – Tarwin Stroh-Spijer Jun 20 '14 at 17:52