我想綁定LI/DIV的類。我正在使用knockout.js。我不知道如何使它工作。這是我的代碼:在knockout.js中綁定到類
<div id="users-list2" class="span8">
<div class="tabbable">
<!-- Only required for left/right tabs -->
<ul class="nav nav-tabs" data-bind="foreach: conversations">
<li data-bind="click: function() { $root.tabClick(username); }, attr:{ 'class': cls}" style="float:left">
<a class="user-box-name"
data-bind="text: username, attr:{ 'href':'#'+ username }, event: { contextmenu: $root.closeTab }"></a>
</li>
</ul>
<div class="tab-content" data-bind="foreach: conversations">
<div data-bind="attr:{ 'id': username, 'class': 'tab-pane ' + cls}">
<div id="chat-list" class="span12" data-bind="foreach: messages">
<ul>
<li>
<div class="chat-listitem-username" data-bind="text: username">
</div>
<div class="chat-listitem-message" data-bind="html: content">
</div>
<div class="chat-listitem-timestamp" data-bind="text: timestamp.toLocaleTimeString()">
</div>
</li>
</ul>
</div>
</div>
和視圖模型:
chatR.conversation = function (username) {
var self = this;
self.messages = ko.observableArray();
self.username = username;
self.test = function (x) { alert(x.username) };
self.cls = "";
}
我想改變CLS爲「主動」被點擊特定的標籤,然後更改其他所有CLS爲「」。它不工作。我究竟做錯了什麼?類似「tabbable」和「nav」的類由bootstrap.js定義。
編輯: 這是我多麼想chnage CLS:
self.tabClick = function (username) {
self.currentConversation = username;
for (i = 0; i < self.conversations().length; i++) {
if (self.conversations()[i].username == username) {
self.conversations()[i].cls = "active";
}
else {
self.conversations()[i].cls = "";
}
}
}
EDIT2:從評論工作 的變化,但我還有一個問題。李有類「積極」,但DIC得到:
<div id="aaa_1" class="tab-pane function d(){if(0<arguments.length)
{if(!d.equalityComparer||!d.equalityComparer(c,arguments[0]))d.H(),c=arguments[0],d.G();return this}b.r.Va(d);return c}"
data-bind="attr:{ 'id': username, 'class':'tab-pane '+cls}">
這裏有什麼錯?
是您的.CLS觀察特性?如果沒有,請考慮製作可觀察的代碼並相應地更改代碼'self.conversations()[i] .cls(「active」);''或'self.conversations()[i] .cls(「」);' – ryadavilli
It有種工作。謝謝!但現在我有另一個問題。李有類「活躍」,但div有些奇怪。我會貼在後。 –