我正在尝试将一个标志变量传递给节点,在该节点中它验证flag是否为true然后执行dojo.connect(flag,onclick,callback)。其他它跳过回调函数。
答案 0 :(得分:1)
Node是构成HTML的每个元素的DOM对象表示,基本上。
查看正式的Dojo Toolkit文档,了解它的功能: https://dojotoolkit.org/reference-guide/1.10/dojo/connect.html
你还没有指定,但我想你在它的1.6中使用了Dojo,这是一个古老的做法,因为我们已经在它的结构功能中实现了AMD架构,你必须有这样的东西:
// Saving your handle
var handle = dojo.connect(node, "onclick", callback);
// Removing the handle
dojo.disconnect(handle);
当你使用dojo.connect(flag, onclick, callback)
时,我们假设你有一个元素,一个DOM节点(在这种情况下是'flag')。
在Dojo 1.6或更早版本中,您可以通过它的ID获取节点,如:(某些官方文档:https://dojotoolkit.org/api/#dojo.byId)
// Here's your node (by ID)
var my_node = dojo.byId("foo");
希望它有助于您的理解。
你需要这样的东西吗?
// Your custom callback
function your_callback_function() {
// You business rules, in this case:
if (dojo.query('#your_flag:checked')) {
// Do something..
}
}
// binding event to the DOM-node and callback
var handle = dojo.connect(dojo.byID("your_flag"), "onclick", your_callback_function);
你可以看到更多关于< 1.6版本Dojo Events的功能在:https://dojotoolkit.org/reference-guide/1.6/dojo/index.html#events
我建议您了解更多关于AMD和Dojo的新功能,因为它已经发生了变化。