このようなコードがある場合、knockoutjs の有効化機能が機能します。
最初は両方のリンクがアクティブです。いずれかのリンクをクリックすると、別のリンクが無効になります。もう一度リンクをクリックすると、他のリンクが有効になります。
これはあなたが求める答えではありません..これは、ノックアウトで作業を可能にする方法の答えです
ボタンを1つだけ有効にしたい場合は、いくつかの条件が必要です。この有効なバインディングでそれらの条件を適用すると、すべての問題が解決します。
HTML:-
<input type="text" data-bind="enable: linkTwo() != 'clicked',click: clickActivateSpatialSearch" id='draw_polygon'/>
<input type="text" data-bind="enable: linkOne() != 'clicked',click: clickActivateSpatialSearchBox" id='draw_box'/>
脚本:-
var self = this;
self.linkOne = ko.observable();
self.linkTwo = ko.observable();
self.clickActivateSpatialSearch = function(){
if(self.linkOne() != 'clicked'){
self.linkOne('clicked');
}
else{
self.linkOne('notClicked');
}
// some code here
};
self.clickActivateSpatialSearchBox= function(){
if(self.linkTwo() != 'clicked'){
self.linkTwo('clicked');
}
else{
self.linkTwo('notClicked');
}
// some code here
};
注: バインドの有効化と無効化は、アンカー タグでは機能しません。入力、テキストエリア、選択で機能します。