Javascript 滚动到绑定到ObservalArray的列表中创建的DOM元素
我在一个元素上有一个击倒点击绑定。在单击处理程序内部,我向绑定到Javascript 滚动到绑定到ObservalArray的列表中创建的DOM元素,javascript,knockout.js,Javascript,Knockout.js,我在一个元素上有一个击倒点击绑定。在单击处理程序内部,我向绑定到的observableArray添加了一个元素。当一个项目被添加到此ObservalArray时,我希望能够滚动页面,以便新添加的位于页面顶部。有没有办法做到这一点?我的想法是获取,然后使用scrollIntoView方法,但我不知道如何从数据中获取DOM元素。似乎我需要的是与ko.dataFor相反的东西。下面是一个JSFIDLE,其中有一个TODO,显示了我想要的内容:希望这会有所帮助: <ul data-bind="fo
的observableArray添加了一个元素。当一个项目被添加到此ObservalArray时,我希望能够滚动页面,以便新添加的
位于页面顶部。有没有办法做到这一点?我的想法是获取
,然后使用scrollIntoView
方法,但我不知道如何从数据中获取DOM元素。似乎我需要的是与ko.dataFor
相反的东西。下面是一个JSFIDLE,其中有一个TODO,显示了我想要的内容:希望这会有所帮助:
<ul data-bind="foreach: myStuff">
<li data-bind="text: name, setFocus: {}" "></li>
</ul>
var ctr = 2;
ko.bindingHandlers.setFocus = {
update: function(element, valueAccessor, allBindingsAccessor) {
$('html,body').animate({scrollTop: $(element).offset().top}, 500);
}
};
var vm = {
myStuff: ko.observableArray([
{name: 'foo1', desc: 'bar1'}
]),
addFooBar: function() {
this.myStuff.push({name: 'foo' + ctr, desc: 'bar' + ctr});
ctr++;
}
};
ko.applyBindings(vm);