次のシナリオで Knockout を使用しようとしています: jquery UI タブと [次へ] / [前へ] ボタンがあります。選択したタブに応じてボタンを非表示にしたい - 次は最後のタブで非表示になり、前は最初のタブで非表示になります。これが私がやったことです:
//HTML
<div id="buttonsDiv">
<button id="prevButton" data-bind="visible: prevVisible">Prev</button>
<button id="nextButton" data-bind="visible: nextVisible">Next</button>
</div>
//JavaScript
function TabsButtons = function (tabsSize) {
//Computed
this.selectedTab = ko.computed(0);
this.nextVisible = ko.computed(function () {
return this.selectedTab() < tabsSize - 1;
}, this);
this.prevVisible = ko.computed(function () {
return this.selectedTab() > 0;
}, this);
};
var $tabs = this.tabs({
select: function (event, ui) {
tabsButtonsModel.selectedTab(ui.index);
}
});
var tabsButtonsModel = new TabsButtons($tabs.find('.ui-tabs-panel').size());
ko.applyBindings(tabsButtonsModel, $('#buttonsDiv').get(0));
タブ プラグインの「select」イベントを削除し、selectedTab プロパティが自動的に更新されるように Knockout を使用したいと考えています。
それは可能ですか?