【问题标题】:Programmatic Event Trigger using Hammer.js使用 Hammer.js 的程序化事件触发器
【发布时间】:2015-03-11 15:09:29
【问题描述】:

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

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

话虽如此,我已经创建了一个简单的 jsFiddle http://jsfiddle.net/vk3reu0w/1/。它有两个 div 元素。我想要做的是让 div 一个被点击,一个事件自动在 div 2 上触发一个点击事件。

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

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

【问题讨论】:

    标签: javascript html hammer.js


    【解决方案1】:

    您应该向 .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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      相关资源
      最近更新 更多