使用Hammer.js编程事件触发器

时间:2015-03-11 15:09:29

标签: javascript html hammer.js

我发现使用Hammer.js创建程序化事件非常困难。我想要的是有两个元素,当元素一被轻敲时,我想在第二个元素上触发或触发或发出一个事件。

我的最终目标是在拖动项目时使用此技术。基本上,按住元素以创建它的克隆,然后在克隆上发出拖动事件。这将停止拖动原始元素并开始拖动新的克隆元素。

话说回来,我创造了一个简单的jsFiddle http://jsfiddle.net/vk3reu0w/1/。它有两个div元素。我要做的是让一个div被点击,一个事件会自动触发div二上的点击事件。

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");          
});

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分: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/