【问题标题】:Knockout to get the Attribute Value onClick function敲除获取属性值 onClick 函数
【发布时间】:2015-07-20 18:49:29
【问题描述】:

属性值为“Qref”的 HTML 视图。

这是绑定的 HTML 代码

目前我已经硬编码了 Qref 属性值

<!--ko if:$parent.Type == 2 -->
<input type="checkbox" data-bind="attr:{id: $data.Id , Qref: '3177'} , click: $root.answerClick">&nbsp;&nbsp;&nbsp;<span data-bind="text: $data.Text , attr:{id: $data.Id}"></span>
<!--ko if:$data.InputType == "text" -->
<input type="text">
<!-- /ko -->
<!-- /ko -->

这是 CLick 的事件。我可以访问 ID 但无法访问 Qref 值。我想知道如何访问 Qref 值。

    answerClick: function (data ,event) {
                    var click_id = event.target.id;
                    return true;
                },

【问题讨论】:

  • 大概qref 值会在某个时候由您的数据模型驱动?如果是这种情况,请将其作为属性保留在您的视图模型中,而不是将其插入到属性中,并且只需在您的 click 处理程序中使用 data 参数来访问它。
  • 你可以简单地发送click: function() {return $root.answerClick($data.yourBinding())}或使用.bind($data,$data.yourBinding())欢呼
  • 你能给我看看我的 answerclick 函数中的示例代码吗?我没听懂你的意思。
  • 很难说qref 仍然是硬编码的。您能否提供您的视图模型的实际外观?
  • 我想访问 Qref 值。我可以通过 answerClick 访问 id 值: function (data ,event) { var click_id = event.target.id;返回真; },我在 attr 属性中绑定了 id 和 qref。 event.target.id 给我一个id

标签: javascript jquery knockout.js


【解决方案1】:

您可以使用getAttribute 函数访问 DOM 的属性值。

这对你有用:

answerClick: function(c, event){
        var element = event.target;
        var qref = element.getAttribute('Qref');
        var click_id = element.id;
        return true;
    }

【讨论】:

  • 虽然这可能有效,但它并不是真正的“淘汰方式”。
  • 这当然不是淘汰方式。从他提供的信息中很难判断 OP 的情况和背景。看来 OP 确实远远落后于以非 ko 方式做事的兔子洞。
  • 没问题的哥们,很高兴我能帮忙:)
  • @JamesThorpe 我完全同意你的方法不是最佳实践。我认为深入研究 SPA/Knockout/Data Binding 最佳实践和设计更适合programmers
  • 也许吧。如果我们知道qref 的来源,而不是硬编码,我们也可以在这里提供更好的答案。
猜你喜欢
  • 2013-03-02
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 2013-09-08
  • 2014-12-28
  • 2014-07-07
相关资源
最近更新 更多