Dojo Come applicare altre funzioni Evento oncose in TabConainer?
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);
. 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();
}
});
}
});
.