首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Knockoutjs在表中找到单击的Button id

Knockoutjs在表中找到单击的Button id
EN

Stack Overflow用户
提问于 2013-11-01 09:43:04
回答 2查看 779关注 0票数 0

我有一个按钮在桌子上像这样

代码语言:javascript
复制
<tbody data-bind="foreach: Items">
    <tr data-bind="css: { alt: $index() % 2 }">
        <td style="width: 60%;" data-bind="    html: ItemName"></td>
        <td data-bind="    html: Quantity"></td>
        <td style="align-items: center; text-align: center;">
            <input id="btnReady" type="button" value="Ready" class="button" data-bind="click: readyItem " /></td>
    </tr>
</tbody>

我的观点是这样的

代码语言:javascript
复制
function MenuItem(data, hub) {
var self = this;
data = data || {};

// Persisted properties
self.Id = data.Id;
self.ItemId = data.ItemId;
self.OrderId = data.OrderId;
self.ItemName = ko.observable(data.ItemName || "");
self.Quantity = ko.observable(data.Quantity || "");
self.Notes = data.Notes || "";
self.Status = data.Status;
self.error = ko.observable();

self.hub = $.connection.postHub;

self.readyItem = function () {
    self.hub.server.itemReady(self.ItemId, self.OrderId).done(function () {
        $('#btnReady').attr('disabled', 'disabled');
    }).fail(function (err) {
        self.error(err);
    });
}}

当我点击上面的按钮,然后总是第一个按钮在表中禁用。我如何禁用点击的那一个。请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-01 09:48:39

尝试用以下内容替换readyItem处理程序:

代码语言:javascript
复制
self.readyItem = function (data, event) {
    self.hub.server.itemReady(self.ItemId, self.OrderId).done(function () {
        $(event.target).attr('disabled', 'disabled');
    }).fail(function (err) {
        self.error(err);
    });
}}

另外,ids在页面上也是唯一的。如果有几行包含一个按钮,则不要对所有这些行使用#btnReady id。使每个按钮的id唯一,或者使用一个类。

票数 1
EN

Stack Overflow用户

发布于 2013-11-01 11:34:52

使用Knockout的disable绑定而不是手动操作DOM。

在每个项目中,添加

代码语言:javascript
复制
self.isReady=ko.observable(false);

self.readyItem中,将DOM操作替换为

代码语言:javascript
复制
self.isReady(true);

在HTML中,添加

代码语言:javascript
复制
disable: isReady

<input>上的数据绑定,并删除id属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19724246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档