gpt4 book ai didi

button - dojo.connect不会通过按钮连接 'onclick'

转载 作者:行者123 更新时间:2023-12-04 13:29:41 24 4
gpt4 key购买 nike

我在使用dojo.connect()将“onclick”事件与此按钮连接时遇到问题:

<button dojoType="dijit.form.Button" widgetId="inbox_button" id="inbox_button">Inbox</button>

进行连接的代码是:
var inbox_button=dojo.byId("inbox_button");
dojo.connect(inbox_button,'onclick',function(){
var container=dijit.byId("center");
container.addChild(new dijit.layout.ContentPane({region: "left", content: "...", style: "width: 100px;"}))
});

但是,ANY onclick事件不会触发单击该按钮的功能,而是触发了该功能,最终我得到了很多子容器。

即使我确定.connect()函数应该作为dojo基本功能的一部分可用,但我还是明确地“要求”它:
dojo.require("dojo._base.connect");

关于为什么会发生这种情况的任何想法?

最佳答案

如您所说,如果在DOM准备就绪之前运行该代码,则dojo.byId(“inbox_button”)将返回null。因此,您的连接实际上正在执行:

dojo.connect(null, "onclick", function() { ... })

..如果dojo.connect的第一个arg为null,则将使用global或“window”对象。

但是,这只是这里的一个错误。您的button元素已进行窗口小部件化,并变成了dijit.form.Button。因此,您应该在此处连接到小部件的onClick方法,而不是节点的onclick:
dojo.connect(dijit.byId("inbox_button"), "onClick", function() { ... });

另外,要明确一点,您永远不需要dojo.require在dojo._base中需要执行任何操作,这就是dojo.js对您的 promise -全部捆绑在其中。

关于button - dojo.connect不会通过按钮连接 'onclick',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com