gpt4 book ai didi

dom - 不是 dojo.ready 上的函数(与 dojo 1.7 相关)

转载 作者:行者123 更新时间:2023-12-04 05:44:52 25 4
gpt4 key购买 nike

我正在使用 dojo 1.7 进行开发,但出现错误。我的目标是将项目从一个多选框移动到另一个。页面很长所以我只复制了相关部分。

这是我的头部 js 代码,问题出现在 dojo.ready 之后。变量“newStore”效果很好,所以我知道它执行得很好。这似乎是 dojo.query("button.switch") 的问题。我得到的 Firebug 错误是

dojo.query("button.switch").connect is not a function

并且在页面加载时抛出此错误。代码是....
<script type="text/javascript">
require(["dijit/dijit"]);
require(["dojo/parser"]);
require(["dijit/layout/BorderContainer"]);
require(["dijit/layout/ContentPane"]);
require(["dijit/layout/AccordionContainer"]);
require(["dijit/layout/TabContainer"]);
require(["dijit/form/CheckBox"]);
require(["dijit/form/Button"]);
require(["dijit/form/ComboBox"]);
require(["dijit/form/NumberTextBox"]);
require(["dijit/form/SimpleTextarea"]);
require(["dijit/form/TextBox"]);
require(["dijit/form/Textarea"]);
require(["dijit/form/MultiSelect"]);
require(["clipart/ArrowLeft"]);
require(["clipart/ArrowRight"]);
require(["dijit/form/FilteringSelect"]);
require(["dijit/form/RadioButton"]);
require(["dijit/form/Select"]);
require(["dojox/layout/GridContainer"]);
require(["dojo/data/ItemFileReadStore"]);
require(["dijit/Tree"]);
require(["dojo/ready"]);


dojo.ready(function(){
var newStore = new dojo.data.ItemFileReadStore({
url: "http://0:3000/sample/sample_name"
});
dijit.byId('sc_sample_name').set('store',newStore);

dojo.query("button.switch")
.connect("onclick",function(e){
switch(e.target.id.toString()){
case "left" : dijit.byId("at2").addSelected(dijit.byId("at1")); break;
case "right" : dijit.byId("at1").addSelected(dijit.byId("at2")); break;
}
});
});

</script>

这是一个页面加载问题,这就是为什么我不包括 HTML(这是巨大的)。有没有人见过这种行为?珍妮

最佳答案

我想你正在加载 baseless dojo ,即您的 dojoConfig/data-dojo-config有一个选项 async:true ,它从 1.7 版开始将 Dojo 切换到 baseless 模式。

使用 query("button.switch").on("click", function(e) { ...})而不是 connect :

require([
"dojo/ready",
"dojo/query"
], function(
ready,
query
) {

ready(function() {

query("button.switch").on("click", function(e) {
console.log(e.target.id);
});
});
});​

或者不要切换到 baseless 模式。

在这个 jsFiddle 上自己尝试一下: http://jsfiddle.net/phusick/LMdBd/ , 改 async: trueasync: false或完全删除它和 connect将工作:

enter image description here

关于dom - 不是 dojo.ready 上的函数(与 dojo 1.7 相关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10807432/

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