Dojo对话框:显示不是函数
我有以下代码:Dojo对话框:显示不是函数,dojo,Dojo,我有以下代码: function handlesomeObjDelete(someObj) { query('#someObj-delete-link-'+someObj.id).on('click',function(){ var youSureDlg = new Dialog({ title: 'Delete someObj', width:
function handlesomeObjDelete(someObj) {
query('#someObj-delete-link-'+someObj.id).on('click',function(){
var youSureDlg = new Dialog({
title: 'Delete someObj',
width:'250px',
id:'delete-someObj-dlg'+someObj.id,
content:'Are you sure you want to delete this someObj?'
});
var yesBtn = new Button({
label: 'Yes',
type: "button"
});
var noBtn = new Button({
label: 'No',
type: "button"
});
on(yesBtn,'click',function(){
request("someUrl/"+someObj.id, {
handleAs: "json",
type:'delete',
headers: {
"X-Requested-With": "",
"Content-Type": 'application/json; charset=utf-8'
}
}).then(function(){
alert('deleted');
});
});
on(noBtn,'click',function(){
youSureDlg.hide();
});
yesBtn.placeAt(youSureDlg);
noBtn.placeAt(youSureDlg);
//youSureDlg.startup();
youSureDlg.show();
});
}
我得到以下错误:
TypeError: refNode is null
packs[name] = packageInfo;
TypeError: youSureDlg.show is not a function
dojoSniffConfig
我已经包括了dijit.Dialog。如果我再次尝试创建该对话框,我会得到:尝试使用id==someid注册小部件,但该id已经注册
你知道会出什么问题吗
谢谢。试着这样做:
if(!youSureDlg){
var youSureDlg = new Dialog({
title: 'Title',
id: "someID",
content: "",
style: "width:250pt",
});
youSureDlg.show();
}
else {
youSureDlg.show();
}
对话框是独立的,它本身是一个独立的框,没有绑定到另一个div或其他东西
看看这个:
希望对你有帮助
更新1:
尝试注册时出错。。。。当你想启动一个在使用后没有被删除或注销的小部件时,就会发生这种情况。您可以通过检查小部件是否已经存在来处理此问题。检查我的代码-我已经更新了它
还要检查这篇旧帖子:和
您好,Miriam似乎找不到您的源引用节点。 这就是小部件代码锚定到的位置。新对话框中的第二个参数 “yousuredlg”应该是html中的实际div 前 HTML
谢谢你的回复。我已经试过了,但还是不走运。相同的显示不是函数错误。是否尝试将zindex设置为更高的数字::zindex:100我已将更大的上下文添加到问题中,可能会有所帮助
<div>
<div id="yousuredlg"></div>
<button id="goButton">Go</button>
</div>
require(["dojo", "dijit", "dijit/Dialog", "dojo/on"], function (dojo, dijit, Dialog, on) {
var youSureDlg;
on(dojo.byId("goButton"), "click", function () {
if (!youSureDlg) {
youSureDlg = new Dialog({
title: 'Title',
width: '250px',
id: 'someid',
content: 'some content'
}, 'yousuredlg');
}
youSureDlg.show();
});
})