发送事件目标到数据绑定内单击html

时间:2019-01-04 10:07:28

标签: javascript jquery html knockout.js

在数据绑定中发送参数时,我无法发送事件目标。

<button class="tablinks" data-bind="click:$root.notify.bind(this, 1, 'foo');" id="defaultOpen">PRINSIPAL</button>

self.notify = function (str, id, e) {
    if (!e) e = window.event;
    console.log(str + id);
    console.log(e.currentTarget);
});

currectTarget的结果为undefined。但是,当不使用参数时,它将起作用。工作示例:

<button class="tablinks" data-bind="click:$root.notify;" id="defaultOpen">PRINSIPAL</button>

self.notify = function (data, e) {
    console.log(e.currentTarget);
});

输出将为<button class="tablinks" data-bind="click:$root.notify;" id="defaultOpen">PRINSIPAL</button>

解析多个参数时如何获取事件目标

1 个答案:

答案 0 :(得分:1)

Knockoutjs中,event始终作为最后一个参数传递给事件处理程序。因此,您可以在那里抓到它并像使用它

function vm(){
  this.notify = function (str, id, e,event) {
     
    console.log(event.currentTarget)
    }
}

ko.applyBindings(new vm())
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.0.0/knockout-min.js"></script>
<button class="tablinks" data-bind="click:$root.notify.bind(this, 1, 'foo');" id="defaultOpen">PRINSIPAL</button>