我在瘦客戶機上工作用基因敲除JS和我具有的單選按鈕一些問題結合,我希望有人在這裏也許能借一些洞察可能導致這和我能做些什麼來糾正這種情況。淘汰賽JS和單選按鈕不是第一次點擊
我對單選按鈕的陣列的相當典型的佈局。
<p data-bind="text: background().description"></p>
<div data-bind="foreach: backgroundOptions" class="bg-options">
<p data-bind="text: description" class="color-swatch"></p>
<input type="radio" name="backgroundsGroup" data-bind="checked: $parent.backgroundId, value:id"/>
</div>
你可以看到我綁定到父對象的backgroundId。
的JS父對象和對象顯示如下所示:
var CardBackground = function(imagePath, swatchPath, id, description) {
var self = this;
var _imagePath = imagePath;
self.imagePath = ko.observable(_imagePath);
var _id = id;
self.id = ko.observable(_id);
var _description = description;
self.description = ko.observable(_description);
var _swatch = swatchPath;
self.swatchPath = ko.observable(_swatch);
};
var Card = function() {
var self = this;
getBackgrounds = function() {
var bgs = [
new CardBackground("noCardLarge.jpg", "card_swatch-blue.jpg", -1, "None Selected"),
new CardBackground("greenCard.jpg", "card_swatch-green.jpg", 10, "Green Contour Card"),
new CardBackground("purpleCard.jpg", "card_swatch-purple.jpg", 11, "Purple Contour Card"),
new CardBackground("redCard.jpg", "card_swatch-red.jpg", 12, "Red Contour Card"),
new CardBackground("whiteCard.jpg", "card_swatch-white.jpg", 13, "White Contour Card"),
new CardBackground("yellowCard.jpg", "card_swatch-yellow.jpg", 14, "Yellow Contour Card")
];
return bgs;
}
self.backgroundOptions = getBackgrounds();
var _defaultBackground = self.backgroundOptions[0];
self.defaultBackground = ko.observable(_defaultBackground);
var _background = self.defaultBackground();
self.background = ko.observable(_background);
self.backgroundId = ko.computed({
read: function() {
var values = self.backgroundOptions;
return values.length ? values[0] : [];
},
write: function(newValue) {
for (var i = 0; i < self.backgroundOptions.length; i++) {
if (self.backgroundOptions[i].id() == newValue) {
self.background(self.backgroundOptions[i]);
return;
}
}
},
owner: this
});
};
現在需要兩次點擊來獲取綁定到最初採取行動,那麼它只是一個從此時點擊。
另外即使缺省值被設置的各個選項框未選中。如果您更改默認的背景索引上面的描述是正確的,但單選按鈕是不正確的。
我已經創建了一個這樣的例子。
http://jsfiddle.net/JS2GV/2/
有人可能會有任何見解將不勝感激。
謝謝,這是偉大的。我將我的整數更改爲字符串,並且綁定按預期工作。我做了一個輕微的調整對綁定的讀值返回self.background()。ID(),而不是局部變量。 – BigDubb
請標記爲已回答。 – MHollis
+1雙擊解決方案。一個快速的.toString(),它是單擊按預期。 –