我有一個小應用程序,用戶可以在舞臺上放置div。是否有可能在餘燼視圖中添加新事件
這些div必須是可拖動的(可調整大小)(通過jQuery UI),當用戶與div交互時(通過hammer.js),應該觸發事件的選擇。
當前實現:
App.DdView = Ember.View.extend({
// ...
didInsertElement: function (arg) {
// some logic
var $this = this.$();
$this
.draggable(/*...*/)
.resizable(/*...*/);
//delegate
$(document).hammer().on("tap hold swipe", $this, function (e) {
console.log(e.type)
});
}
// ...
});
有兩個問題:
,如果我綁定事件到$這個元素,的div都不能拖動了(可能是鼠標按下事件默認阻止)。如果我委託事件(如代碼所示),div是可拖動的,但事件將在整個文檔中觸發。
如果放置更多的div,事件會被觸發多次。
因此,我認爲,最聰明的解決方案是教燼,有更多的事件來處理比
'click', 'doubleClick', 'contextMenu' ...
我想實現的情況下(處理),如下圖所示:
App.DdView = Ember.View.extend({
tap: function(){},
hold: function(){},
pinch: function(){},
// ...
});
如果有更簡單的方法來實現這一點,隨時發佈它們。 感謝
更新:
更改選擇 「$這個」 爲 「 '#' + $這個[0] .ID」 解決了問題,但它似乎是一個非常骯髒的解決方案。
$(document).hammer().on("tap hold swipe", '#'+$this[0].id, function (e) { ... });
所以還是有,如果有可能教燼新事件的問題。