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();
    });

})