0
我迅速更新排序淘汰赛数组的内容,发现我不能真正与快速更新的项目进行交互。这里有一个很简单的例子:推迟重新排序快速更新淘汰赛数组元素
<script type="text/html" id="link-template">
<a data-bind="text: name" href="https://stackoverflow.com"></a>
</script>
<ul data-bind="template: { name: 'link-template', foreach: links }"></ul>
<script>
var Link = function(name) {
this.name = ko.observable(name);
};
var Vm = function() {
this.links = ko.observableArray();
};
var model = new Vm();
model.links.push(new Link('link1'));
model.links.push(new Link('link2'));
ko.applyBindings(model);
setInterval(function() {
var len = model.links().length;
var target = Math.floor(Math.random() * len);
var removed = model.links.splice(target, 1);
model.links.unshift(removed[0]);
}, 1000/30);
</script>
我的意图是订购最近更新的链接,这里随机更新嘲笑。直接更新,model.links()[0].name('...')
,请允许我按一下该项目的联系,但我也想支持重新排序。
试图与快速更新的数组进行交互是一个非常糟糕的用户体验,所以我认为最好的解决方案是推迟重新排列列表中的元素,直到用户不再徘徊在它上面为止,将显示的数组与数据数组更多。其他列表元素仍然应该在固定的活动元素周围进行重新排序。
有没有简单的方法在淘汰赛做到这一点?有没有现成的插件可以做到这一点?