gpt4 book ai didi

ajax页面加载-Dojo

转载 作者:行者123 更新时间:2023-12-05 00:55:37 24 4
gpt4 key购买 nike

嗨,我有一个页面,左边有一个导航菜单,当有任何链接时
单击此菜单上,会向服务器发送 Ajax get 调用并
右侧更新为新页面。

我目前的做法是创建 2 列,左列
包含导航链接,右边的 col 包含一个名为 the div
具有 dojox.layout.ContentPane.Now 的 dojotype 的内容,当
从服务器接收数据,我像这样更改其内容

dijit.byId("thecontent").setContent=data

现在,当我点击导航链接时,右侧会出现
正确显示(此页面有 dijits 和一些脚本
处理 onclick 事件)。但是 Firebug 返回一个错误说
"Tried to register widget with id==thecontent but that id is already registered"

我的主要道场包括如下所示:-
<script type="text/javascript" src="http://o.aolcdn.com/dojo/1.5/dojo/dojo.xd.js"djConfig="parseOnLoad:false"></script>

我在函数 dojo.addOnLoad 中做一个 dojo.parser.parse() 像这样:-
 dojo.addOnLoad(function(){
dojo.require("dijit.form.Button");
dojo.require("dijit.form.Textarea");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dojox.layout.ContentPane");
dojo.require("dijit.Editor");
dojo.addOnLoad(function(){
dojo.parser.parse();
sendgetrequest();//this initiates the xhrget request
dojo.removeClass(dojo.byId("doc3"),"hiddendiv");
}

);
})

我也无法在这个新加载的页面中运行任何脚本。没有 onclick 事件在工作,只显示 dijit 小部件...

最佳答案

正如 Ken 已经说过的那样,该错误意味着您正在创建一个带有已经存在的 id 的 dijit。我的猜测是您在不首先破坏旧的右侧面板的情况下在右侧面板中加载 AJAX 内容。

在加载新内容之前,尝试在右侧面板中的主 dijit 容器上调用 destroyRecursive。此外,如果您不需要设置 dijit 的 id,您可能会删除 id(但这会留下内存漏洞,因为旧的 dijit 没有被销毁)。

关于ajax页面加载-Dojo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4176126/

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