单击事件绑定的$ parent淘汰赛

Dor*_*orR 5 javascript knockout.js

我有以下代码:

<div id="menu">
  <ul data-bind="foreach: elements">
    <li>
      <span data-bind="text:domObj().tagName +' [' + classOriginal() + ']', click: $root.elementClick"></span>
      <ul class="menuclassitem" style="display:none" data-bind="foreach: classFixes">
        <li data-bind="text:$data, click:$root.classClick.bind($parent)"></li>
      </ul>
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

如您所见,我试图将$ parent对象(“元素”数组中的当前项)传递给$ root.classClick函数,但实际传递的值是当前内部循环的$ data(当前“ classFixes”数组的$ data)

有谁知道如何在classClick函数中使用$ parent?

小智 0

classClick 函数中的“this”变量是 $parent。传递给 classClick 的第一个参数是 $data。这个小提琴演示了

ko.applyBindings({
elements: [
    {
        classFixes : ["ab","cd"]
    },
    {
        classFixes : ["ef","gh"]
    }
 ],
 classClick : function(first)
 {
    alert(JSON.stringify(this));
    alert(JSON.stringify(first));
 }
});
Run Code Online (Sandbox Code Playgroud)