0
我見過幾個如何從小部件外部以編程方式設置活動選項卡的示例。但是,我已經擴展了選項卡窗口小部件,並且似乎無法以編程方式從內的窗口小部件中設置活動選項卡。我創建了一個小測試用例來演示。從小部件內設置擴展jQuery選項卡小部件的活動選項卡
使用Javascript:
$(document).ready(function(){
$.widget("custom.extendedTabs", $.ui.tabs, {
_create: function() {
var self=this;
this.element.mouseover(function(){
console.log(self.options.active);
self.options.active=3;
console.log(self.options.active);
});
return this._super();
}
});
$(".tabs").each(function(){
$(this).extendedTabs("option","active",1);
});
});
HTML:
<div id="tabs1" class="tabs">
<ul>
<li><a href="#tabs1_1">HEY1!</a></li>
<li><a href="#tabs1_2">HEY2!</a></li>
<li><a href="#tabs1_3">HEY3!</a></li>
<li><a href="#tabs1_4">HEY4!</a></li>
</ul>
<div id="tabs1_1">
<p>Content 1</p>
</div>
<div id="tabs1_2">
<p>Content 2</p>
</div>
<div id="tabs1_3">
<p>Content 3</p>
</div>
<div id="tabs1_4">
<p>Content 4</p>
</div>
</div>
目標:
要自動設置活動選項卡的第四一個在鼠標懸停(指數3)的標籤小部件。
問題:
在此演示中,「活性」選項被成功地被設置初始化後右側(索引1)和如預期的焦點跳躍到第二選項卡。但是,在鼠標懸停時,即使活動選項成功設置爲3(通過日誌記錄驗證),選項卡也不會按預期跳轉到第4個選項卡。
我找到了解決方法,只需使用我想要選擇的選項卡的click()
方法即可。然而,這不應該被要求 - 這個功能應該直接在小部件中工作。我只是想念一些東西。其他選項在小部件中工作得很好。例如,我可以在鼠標懸停內調用self.options.collapsible=true
,它會按預期影響更改。
任何想法?