我有带有tab1
和的主标签元素tab2
。Where有另一个带有和tab2
的嵌套选项卡元素。subtab1
subtab2
最初,主选项卡只有tab1
.Then tab2
,tab3
依此类推 .. 是动态创建的,并且具有subtab1
和subtab2
。
目标:
我想在创建嵌套选项卡 ( subtabs-*
) 时获取它们的宽度。无需选择它们或使用任何讨厌的事件。
问题:
我可以得到 Mater 选项卡的宽度,
var master_width = $("div.ui-tabs-panel:not(.ui-tabs-hide)",$master).width();
但我不能得到从属选项卡的宽度。
我的猜测是因为当 tab2 已创建但尚未选择时,因此 subtab-* 不可见,因此宽度为零。 但是已经创建了子选项卡,因此必须有一种方法来获取它的宽度。
我能够通过 atcive:event 获得从选项卡的宽度。但这不是我的要求。我需要在创建它时获取它的宽度。
JSFIDDLE:这里
HTML:
<div id="tabs">
<ul>
<li><a href="#tabs-1">tab1</a></li>
<li><a href="#tabs-2">tab2</a></li>
</ul>
<div id="tabs-1">
some data
</div>
<div id="tabs-2">
<div id="subtabs">
<ul>
<li><a href="#subtabs-1">subtab1</a></li>
<li><a href="#subtabs-2">subtab2</a></li>
</ul>
<div id="subtabs-1">
some data
</div>
<div id="subtabs-2">
some data
</div>
</div>
</div>
</div>
JS:
var $master = $("#tabs").tabs();
var $slave = $("#subtabs").tabs();
var master_width = $("div.ui-tabs-panel:not(.ui-tabs-hide)",$master).width();
// For display purpose append to body or use console.log
$("body").append("Master : "+master_width+"<br>");
var slave_width = $("div.ui-tabs-panel:not(.ui-tabs-hide)",$slave).width();
// For display purpose append to body or use console.log
$("body").append("Slave : "+slave_width);//returns zero