在将Dojo Non-AMD JS转换为AMD时,发现事件有困难 处理我们有许多按钮,span 和div 具有具有多个操作的不同事件。所以想知道我们应该使用 on
还是connect
以及如何将其用于多个元素事件?
<span onclick="a.abShow(); t.T1(); p.show();">
<span onclick="a.test(); setTimeout(a.test1(),100)">
<td onclick="ab.test7(); t.test();">
Button('gallery', 'e.Refresh();a.test();','');
........
您可以使用dojo/on
模块轻松地对事件运行多个操作:
dojo/on 是 DOM 节点和其他事件发出对象的通用事件处理程序模块,提供规范化的事件监听和事件调度功能。
https://dojotoolkit.org/reference-guide/1.10/dojo/on.html#dojo-on
require(['dojo/on', 'dojo/domReady!'], function (on) {
on(dojo.byId('my-span'), 'click', function (e) {
alert('I throw an alert');
alert('And do it again');
alert('And again');
});
on(dojo.byId('my-other-span'), 'click', function (e) {
alert('I throw an alert');
alert('And do it again');
alert('And again');
});
});
<script type="application/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<span id="my-span">Click me!</span>
<span id="my-other-span">Click me too!</span>