Pergunta

Eu estou estudando o Tabcontainer.O dojo é um método utilizado para evento onClose irá confirmar ().Eu não uso a confirmar () o w2confirm eu uso não se aplica.Tentou de várias formas, mas não funcionou.plz me ajuda!

dojo exemplo

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

meu código

 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);                                                                                                                                    
Foi útil?

Solução

w2confirm não tem um significativo valor de retorno, porque opera de forma assíncrona (daí o retorno de chamada que você passar para ele), o que significa que a função vai retornar antes que o usuário sempre escolhe sim ou não.

Parece que você já tentou uma abordagem diferente, que estava no caminho certo, mas ContentPanes não tem um close o método.O que você pode fazer, porém, é instruir o pai TabContainer para remover a criança, em seguida, destruí-lo.Aqui está um caminho potencial para fazê-lo:

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();
            }
        });
    }
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top