我有一个Tabstrip,其中一个Tabs包含一个Splitter。问题在于,当我单击选项卡时,Splitter没有正常显示 - 左窗格的大小为零,右窗格为空。如果我展开左侧窗格,它会正常显示。Kendo UI Splitter调整大小
我在这里发现了这个问题太:Kendo UI Forum
所以我用提供的代码:
$("#tabstrip").kendoTabStrip({
animation: false,
select: function(e) {
setTimeout(function() {
$(e.contentElement).find(".k-splitter").each(function() {
$(this).data("kendoSplitter").trigger("resize");
});
});
}
});
而对于过去的一些剑道释放它甚至animation:true
工作!
然而,当我开始使用测试版Q3,现在全Q3,上面的代码只能如果我的触发命令前加上alert("")
!随着警报工作正常,没有它我再次得到旧的混乱的结果。
我当前的代码是:
$("#tabstrip").kendoTabStrip({
animation : {
open : {
duration : 200,
effects : "fadeIn"
}
},
select : function(e) {
setTimeout(function() {
$(e.contentElement).find(".k-splitter").each(function() {
$(this).show(500, function() {
alert("");
$(this).data("kendoSplitter").trigger("resize");
});
});
});
}
});
$("#splitter").kendoSplitter({
panes : [
{
collapsible : true,
size : "17%",
scrollable: false
},
{
collapsible : false,
resizable: false,
scrollable: false
},
{
collapsible : true,
size : "20%",
scrollable: false
},
],
});
我忘记了什么?整个alert("")
并没有什么意义,当然我不想每次选择标签时都发出警报。
PS:如果我把animation:false
,那么代码工作没有alert("")
,但我想保持动画,因为它是。
它的工作确实没想到的是,感谢! – CipherDarkness
使用'setTimeout'创建延迟通常是一个不好的解决方案。在最糟糕的情况下,它会在较慢的机器上或其他原因造成竞争状况,最好的情况是在动画完成后你会失去100毫秒的空闲时间。 – Shai