dojo/on或dojo/connect不工作

rseugnpd  于 2023-05-21  发布在  Dojo
关注(0)|答案(2)|浏览(290)

我尝试使用Dojo框架,但我不能在href或其他元素上使用处理程序(事件)。谢谢

HTML:
 <a class="one" href="#">text_one</a>
 <a id="two" href="#">text_two</a>

 JS:
 require(
    ["dojo/query", "dojo/_base/connect", "dojo/on", "weather/handlers", "dojo/domReady!"],
    function(query, connect, on){
        var test = new weather.handlers;
        test.getCities();

        query(".one").forEach(function(node, index, nodelist){
            on(node, "onClick", function(evt){
                console.log("one clicked!");
            })
        });

        query('#two').on('onClick',function(){
            console.log('two clicked!');
        })
    }
);
vawmfj5a

vawmfj5a1#

要侦听的DOM事件的名称是click,而不是onClick。使用dojo/on监听DOM元素上的onClick将不会有任何作用。
如果你要为多个同质元素挂接一个事件处理程序,你可能还想阅读Events with Dojo教程中的事件委托。

brtdzjyr

brtdzjyr2#

dom事件onClickDojo 1.7 之前使用,其中dojo.connect用于注册事件侦听器。例如:

dojo.connect(node, "onclick", callback)

但是从 Dojo 1.7onwards开始,引入了一个新的轻量级dojo/on模块,它使用以下语法:

on(nodel, "click", callback)

删除了on前缀,onclick变为click

相关问题