Domanda

Sto studiando il tabcontainer. Il dojo è un metodo utilizzato per l'evento onclose confermerà ().Non uso la conferma () L'uso W2Confirm I non si applica.Tentato in vari modi, ma non ha funzionato.Plz Aiutami!

DOJO Esempio

 var closablePane = new ContentPane({
    title:"Close Me",
    closable: true,
    onClose: function(){
       // confirm() returns true or false, so return that.
       return confirm("Do you really want to Close this?");
    }
});

onCloseEx.addChild(closablePane);
.

Il mio codice

 function abc(){
                w2confirm("are you delete?",function btn(ans){
                    if(ans=="Yes"){
                        return true;//this.close();
                        //console.log(registry.byId(id));
                        //registry.byId(id).close();
                    }else{
                        return false;
                    }
                });
            }       

var tab = new dijit.layout.ContentPane({
                    title : name,
                    id : id,
                    content : content,
                    class : 'tab',
                    closable : true,
                    onClose : function() {
                        return abc();
                    }
                });

                var container = dijit.byId('tabContainer');
                container.addChild(tab);
                container.selectChild(tab);                                                                                                                                    
.

È stato utile?

Soluzione

w2confirm non ha un valore di ritorno significativo perché funziona asincrono (quindi il callback che passa ad esso), il che significa che la funzione è tornata prima che l'utente abbia mai scelto Sì o No.

Sembra che tu abbia già tentato un approccio diverso, che era sulla strada giusta, ma ContentPanes non ha un metodo close.Quello che puoi fare, tuttavia, è istruire il tabccontainer del genitore di rimuovere il bambino, quindi distruggerlo.Ecco un modo potenziale per farlo:

var tab = new dijit.layout.ContentPane({
    ...
    onClose: function () {
        w2confirm("Are you sure you want to delete?", function (answer) {
            if (answer === "Yes") {
                tab.getParent().removeChild(tab);
                tab.destroyRecursive();
            }
        });
    }
});
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top