2015-03-11 2 views
1

Мне очень сложно создавать программные события с использованием Hammer.js. Я хотел бы иметь два элемента, когда элемент один используется, я хотел бы запустить или запустить или испустить событие во втором элементе.Программируемый триггер события с использованием Hammer.js

Моя конечная цель - использовать эту технику при перетаскивании предметов. В принципе, удерживайте элемент, чтобы создать клон, а затем испустите событие перетаскивания на клоне. Это остановит перетаскивание исходного элемента и начнет перетаскивание нового клонированного элемента.

С учетом сказанного, я создал простой jsFiddle http://jsfiddle.net/vk3reu0w/1/. Он имеет два элемента div. То, что я пытаюсь сделать, это использовать div, и событие автоматически запускает событие tap на div two.

var buttonOne = document.getElementById("one"); 
var buttonTwo = document.getElementById("two"); 

var mc1 = Hammer(buttonOne); 
var mc2 = Hammer(buttonTwo); 

mc1.on("tap", function(event) { 
    alert("MC1 Tapped"); 
    console.log("MC1 Tapped");   
    mc2.emit("tap");    
}); 

mc2.on("tap", function(event) { 
    alert("MC2 Tapped"); 
    console.log("MC2 Tapped");   
}); 

Любая помощь очень ценится. Благодарю.

ответ

0

Вы должны добавить к .emit метод второй параметр.

mc1.on("tap", function(event) { 
    alert("MC1 Tapped"); 
    console.log("MC1 Tapped");   
    mc2.emit("tap", event); // HERE   
}); 

http://jsfiddle.net/Lnvgcupg/1/

Вы можете пользовательских вашего мероприятия, а также.

mc1.on("tap", function(event) { 
    console.log("MC1 Tapped");   
    var customEvent = JSON.parse(JSON.stringify(event)); // Creating 
    customEvent.center.x = 999; // ...changing something 
    mc2.emit("tap", customEvent); // Emitting  
}); 

http://jsfiddle.net/ntgrdq7n/3/

Смежные вопросы