gpt4 book ai didi

javascript - 将项目添加到 Observable Array Knockout

转载 作者:行者123 更新时间:2023-11-28 01:51:12 25 4
gpt4 key购买 nike

我有 3 个可观察数组:

self.sets1 = ko.observableArray([
]);
self.sets2 = ko.observableArray([
]);
self.sets3 = ko.observableArray([
]);

我有一个构造函数来创建新记录。

function Record(name1){
var self = this;
self.name = ko.observable(name1);
this.editing = ko.observable(false);
this.edit = function() { this.editing(true) }
self.remove = function(){
self.remove(this);
}

}

我有一个函数可以将记录添加到我的一个可观察数组中。就像这样:

this.addSet = function(){
self.sets1.push(new Record($('input[id=weight1]').val()+' x '+$('input[id=reps1]').val()));
};

在我看来,我这样调用它:

<button id="btn1" data-bind="click: addSet">Add set</button>

但这仅适用于可观察数组sets1

我想要的是使这个函数具有通用性,这样它就可以将记录添加到任何数组中,例如根据单击的按钮id。但是我如何获取所需的 id 并将该值传递给我的函数?或者也许有更好的解决方案?

谢谢。

最佳答案

Knockout event bindings (如点击)提供了两个您可能会觉得有用的参数。

function(data, event)

这里,data 是与引发事件的元素关联的 knockout 对象。 event 是包含有关事件的数据的事件对象。 event.target 是对引发事件的 html 元素的引用。

因此,要查找被单击的按钮的 ID,请执行以下操作:

this.addSet = function(record, event){
var id = $(event.target).attr('id');
...
};

关于javascript - 将项目添加到 Observable Array Knockout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19689365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com