在我的表单中,列表是通过敲除来"填充"的。这是ul
代码:
<ul class="sortable ui-widget-content" data-bind="foreach: menus">
<li>
<a href="#" data-bind="attr: { title: name }, click: $parent.navigate">
<i data-bind="attr: { class: iconClass }"></i>
<span data-bind="text: title"></span>
</a>
</li>
</ul>
而且效果很好。我现在需要的是,当foreach
完成后,运行一段代码。关于如何实现这一点,有什么想法吗?
来自淘汰文档:(参见afterRender
,注释7)
如果您需要在生成的DOM上运行一些进一步的自定义逻辑元素,可以使用
afterRender/afterAdd/beforeRemove/beforeMove/afterMove
回调
<ul data-bind="foreach: { data: myItems, afterAdd: yellowFadeIn }">
<li data-bind="text: $data"></li>
</ul>
<button data-bind="click: addItem">Add</button>
<script type="text/javascript">
ko.applyBindings({
myItems: ko.observableArray([ 'A', 'B', 'C' ]),
yellowFadeIn: function(element, index, data) {
$(element).filter("li")
.animate({ backgroundColor: 'yellow' }, 200)
.animate({ backgroundColor: 'white' }, 800);
},
addItem: function() { this.myItems.push('New item'); }
});
</script>
你看起来像这样吗?
编辑:在这种情况下,afterRender
应该是正常的