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