我是淘汰赛新手并使用教程,但没有运气。
我正在尝试将一组图像设置为类似于一组复选框。它们最初应在数组“self.brands”中设置为“true”,并具有“.active”类。在单击事件中,我希望他们将它们切换为真或假,并将类从 .active 设置为 .deactive
数组“self.brands”代表 4 个属性。ID、图像路径、alt 标记、选中(真或假)。当您单击图像时,它应该切换真/假值,将 css 从 .active {opacity:1} 设置为 deactive {opacity:0.2}。
这是 self.brands 可观察数组:
self.brands = ko.observableArray([["1",'acdsee.jpg','ACD See',"true"], "2",'amazon.jpg','Amazon',"true"], ["3",'aol.jpg','AOL',"true"], ["4",'cisco.jpg','Cisco',"true"];
这是图像的html:
<a href="#">Select All</a> | <a href="#">Deselect all</a>
<br />
<div id="brands">
<ul data-bind="foreach: brands" class="brands">
<li data-bind="click: $parent.setBrand,
css: { active: $data == $root.chosenBrandId() }"><a href="javascript:void(0);" data-bind="click: $parent.setBrand"> <img data-bind="attr:{src: $data[1], alt: $data[2]}" /></a>
</li>
</ul>
</div>
CSS:
.active {opacity:1}
.deactive {opacity:0.2}
淘汰码:
self.chosenBrandId = ko.observable();
self.setBrand = function(brand) {
self.chosenBrandId(brand);
};
我在设置时遇到问题。当前,当您单击图像时,它一次仅将 .active 类应用于一张图像。当我尝试获取 self.chosenBrandId(brand) 的值时,它返回 [object, object]。所以我不明白如何将 selectedBrandID 中的值设置为 true,我试过了
self.chosenBrandId(brand)[3];
但这返回未定义,所以我想知道如何设置值,甚至可以在返回 [object,object] 的“品牌”变量中检索哪些参数;
希望它以下列方式表现:
1) onclick 在 .active 和 .deactive 类之间切换单个图像?
2) 单个图像的 onclick 更改 self.brands 数组的布尔真/假值?
3) 创建一个函数,当您单击链接“全选”或“取消全选”时,将所有图像 css 和数组值从 .active 和 true 或 .deactive 和 false 更改?