我有一個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