dojo Como aplicar outra função do evento onClose em tabContainer?
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);
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();
}
});
}
});