我正在研究Tabcontainer.dojo是一个用于onClose事件的方法将确认()。我不使用确认()我使用的w2confirm不适用。以各种方式尝试,但它没有奏效。请帮助我!
道场示例
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);
我的代码
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);
答案 0 :(得分:1)
w2confirm
没有有意义的返回值,因为它以异步方式运行(因此传递给它的回调),这意味着您的函数将在用户选择是或否之前返回。
看起来您已经尝试了一种不同的方法,这种方法在正确的轨道上,但ContentPanes没有close
方法。但是,您可以执行的操作是指示父TabContainer删除子项,然后将其销毁。这是一种可行的方法:
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();
}
});
}
});