我有一些html:
<input name="Test" type="radio" value="yes" data-bind="checked: Page2.Traded, click: Traded_Yes" /> Yes
<input name="Test" type="radio" value="no" data-bind="checked: Page2.Traded, click: Traded_No" /> No
還有一些Javascript:
self.Traded_Yes = function(data) {
$("#Page2Symbol").prop("disabled", false);
return true;
};
self.Traded_Yes = function(data) {
$("#Page2Symbol").prop("disabled", true);
return true;
};
在禁用 id: Page2Symbol 和保存正確資料方面,UI 上的一切正常,但是當我單擊任一單選時,UI 不會顯示單選按鈕在是/否之間翻轉。我這樣做return true是為了允許此處討論的默認單擊操作:https ://knockoutjs.com/documentation/click-binding.html ,但是當我單擊任一單選時,UI 不會翻轉選擇。有什么想法嗎?
uj5u.com熱心網友回復:
我無法重現您的問題,但可能有一些很好的建議來解決您可能遇到的問題:
使用敲除時,建議使與 DOM 的所有互動都通過敲除系結。對于禁用和啟用按鈕,有disable和enable系結。以下是您如何使用它們:
使用disable系結:
您向視圖模型添加一個computed屬性,該屬性定義是否基于 的值禁用Traded。
這樣可以確保您不需要單擊系結,并且可以擺脫任何id參考。
const self = {};
self.Page2 = { Traded: ko.observable("yes") };
self.disablePage2Symbol = ko.pureComputed(() => self.Page2.Traded() === "yes");
ko.applyBindings(self);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<button data-bind="disable: disablePage2Symbol">Page 2 button</button>
<label>
<input type="radio" value="yes" data-bind="checked: Page2.Traded" /> Yes
</label>
<label>
<input type="radio" value="no" data-bind="checked: Page2.Traded" /> No
</label>
問題重現失敗:
此片段顯示您的原始代碼應該可以作業,即使它有點反模式。
顯示代碼片段
const self = {};
self.Traded_Yes = function(data) {
$("#Page2Symbol").prop("disabled", false);
return true;
};
self.Traded_No = function(data) {
$("#Page2Symbol").prop("disabled", true);
return true;
};
self.Page2 = { Traded: ko.observable("yes") };
ko.applyBindings(self);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<button id="Page2Symbol">Page 2 button</button>
<input name="Test" type="radio" value="yes" data-bind="checked: Page2.Traded, click: Traded_Yes" /> Yes
<input name="Test" type="radio" value="no" data-bind="checked: Page2.Traded, click: Traded_No" /> No
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/482100.html
標籤:javascript 淘汰赛.js
上一篇:我正在嘗試向我的反應組件發出axiosGET請求,我在console.log上獲取物件。但是當我嘗試渲染它時,我得到一個“未定義”
