【发布时间】:2014-10-04 14:45:30
【问题描述】:
我正在使用 knockback.js。我有一个值“项目”列表(值来自服务器)。并将这些值的内容显示在<div class="hiddendivcontent"> 中。
<ul data-bind="foreach: projects" class="list-group">
<li class="list-group-item" data-bind="click: function(data,event){CommunityView.showContents($data.pkey(),$data.folder(), data, event);}">
<span style="border:0px;" class="glyphicon glyphicon-plus pull-right" data-toggle="dropdown" ></span>
<ul class="dropdown-menu labellistdropdown" role="menu" style="min-width:200px;">
<li>..</li>
</ul>
<div class="hiddendivcontent">
<ul data-bind= "foreach : $root.community()" class="list-group">
<ul data-bind = "foreach :items">
<li> <span data-bind="text:cname"></span></li>
</ul>
</ul>
</div>
</li>
</ul>
当点击“CommunityView.showContents()”时,“hiddendivcontent”获取值。换句话说,“hiddendivcontent”应该在单击该方法时显示,否则它会保持隐藏状态。以下代码是我使用过的 Jquery 代码:
showContents : function(pk,rf,data,event){
event.preventDefault();
$('.hiddendivcontent').toggle();
}
如果我使用上面的代码,则该值将填充到所有列表项中。我尝试了很多方法来切换 div,但没有任何效果。谁能给我一些建议?
提前致谢
【问题讨论】:
-
如果您创建一个简单的 jsfiddle 来解决您遇到的确切问题,这将非常有帮助。
-
另一件事 - 在您的
click绑定中,您传递参数$data.pkey(),$data.folder(),但应该是data.pkey(),data.folder(),因为$data在匿名函数的上下文中是未定义的。 -
这没有问题。我已经用 js 部分的警报消息检查了它。我的问题是为每个列表项切换 hiddendivcontent
-
你说得对,我认为那行不通。但是 jsfiddle 还是不错的。
-
但是在 jsfiddle 中我不知道如何填充 foreach:projects 值的值。我是新手。所以我不知道如何在 jsfiddle 中进行
标签: jquery html twitter-bootstrap knockout.js knockback.js