1.滚动条:
this.plotPointsTable.on("scroll", function (e) {
e.scrollTarget.scrollLeft;
});
2.click:
this.plotPointsTable.on(".dgrid-cell:click", function (e) {
return _this.onTableCellClicked(e);
});
3.mousewheel
Dojo.on(canvas, 'mousewheel', function (event) {
event.wheelDelta;
});
4.contextmenu
this.layoutsTree.on(".dgrid-cell:contextmenu", function (event) {
// return _this.onShowLayoutsContextMenu(event);
});
5. mouseover
this.layoutsTree.on(".dgrid-cell:mouseover", function (event) {
//return _this.onLayoutTreeMouseOver(event);
});
6.touchstart
this.layoutsTree.on(".dgrid-cell:touchstart", function (event) {
});
7.touchend
this.layoutsTree.on(".dgrid-cell:touchend", function (event) {
});
require(['dojo/_base/kernel', 'dojo/query'], function(dojo, dom, $) { $('body').connect('mousemove', function(event) { }); $('tag').on('click', function(event) { }); });
connect是dojo一个比较特殊的方法,他用于实现了对任意对象,实现事件注入(类似Qt框架的信号槽的机制),很多对象,类如dojo.Animate的事件绑定,也是经过此方法绑定。
stopEvent的方式:
require(['dojo/_base/kernel', 'dojo/query', 'dojo/_base/event'], function(dojo, $) { $('body').connect('mousemove', function(event) { dojo.stopEvent(event); // 是不是有点好像以前写JS原生的stop event呢? }); });
和jQuery不同,jQuery的事件只要return false即可,dojo需要额外引入 dojo/_base/event,并执行dojo.stopEvent(event),这让我想很早以前兼容IE和Firefox时候的写法,event = event || window.event。