0
这实际上是我在Stack中的第一个问题(长时间监听器和所有这些)。除非它在全局范围内,否则不能使用dojo/query
我对Javascript一般而言并不陌生,当然对于Dojo来说也是新手。在这个问题上我一直在绞尽脑汁,但看不到我做错了什么。
我试图通过此代码获取查询以返回DOM中的所有<p>
标记。一切都很好。
define ([
"dojo/dom",
"dojo/query"
], function (dom) {
return {
changeParagraphs: function() {
var nodeList = dom.query('p');
console.log(nodeList);
}
}
});
打扰布局,还是习惯了这个。 如果我打电话询问,因为我在这里...
require(["custom/q3",
"dojo/domReady!",
"dojo/query"], function(myObject){
myObject.changeParagraphs();
})
我得到一个对象有没有方法查询错误。
如果不是
VAR节点列表= dom.query( 'P')
我打电话......
VAR节点列表= dojo.query(“P ')
一切都很好。为什么?我知道它不好的做法是使用全球(真的是任何语言),但是我做错了什么?我无意使用全球!
我想我最有可能浪费人们在这里的时间,但我一直在头撞着键盘几个小时。这很可能是非常明显的事情!
在此先感谢!
非常感谢的快速反应。今晚晚些时候我会看这个,所以我会回复你。我相信你的回答很可能是正确的:) 所以当我试图使用它时,它被连接到我的对象,我_应该_直接访问它? – Galatoni
刚刚检查过它,它工作得很好(就像我怀疑它!) 非常感谢。需要退后一步。欢呼再次寻求帮助! – Galatoni
@Galatoni几乎每个Dojo 1.9模块(例如'foo/bar/baz')的设计都是为了在使用时创建单个对象,数组或数字等,所有这些都希望没有任何副作用或全局变量。当模块加载器完成所有这些有效载荷时,它将按照列出模块名称的相同顺序将它们传递给您的函数。所以在BuffaloBuffalo的例子中,如果你真的想,你可以*重写它为'function(foo,bar)'和'bar('p')'。 (这只是不好的风格。) – Darien