我发现使用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");
});
非常感谢任何帮助。感谢。
答案 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
});