对于这个noobish问题感到抱歉。我觉得必须有一个更好的方法,但我没有看到它。我不想在按钮单击查找ID时执行循环。我只想传递要删除的索引。
以下是我想要做的事情
HTML
<div id="list">
{^{for items}}
<div class="list-item">
...
<a href="#" class="remove-list-item">Remove
<span class="remove-list-item-index hide">{^{:#index}}</span>
</a>
</div>
{{/for}}
</div>
JS
$('a.remove-list-item').click(function () {
$.observable(listArray).remove(parseInt($(this).children('span.remove-list-item-index').text()));
});
这就是我想要做的事情
HTML
<div id="listing">
{^{for items}}
<div class="listing-item">
...
<a href="#" data-index="{^{:#index}}">Remove</a>
</div>
{{/for}}
</div>
JS
$('a.remove-list-item').click(function () {
$.observable(listArray).remove(parseInt($(this).attr('data-index')));
});
答案 0 :(得分:1)
您可以使用var view = $.view(element)
获取任何元素的当前视图。
对于与{^ {for items}}块对应的视图,每个视图都有一个索引属性。
所以你可以这样做:
$('a.remove-list-item').click(function () {
$.observable(listArray).remove($.view(this).index);
});
比您建议的方法更简单。
有许多样本使用这种方法,例如http://www.jsviews.com/#samples/editable/tags