【问题标题】:Passing "event" in Knockout在淘汰赛中传递“事件”
【发布时间】:2013-10-02 04:56:14
【问题描述】:

这里有几个问题已经解释了 FF 中没有 window.event 并且您必须将它作为参数传递,这一切都很好。我还发现您必须通过 event 才能使其正常工作,如下所示。但是我如何在 Knockout 中达到同样的效果?

<input type="button" value="TestPlain" onClick="test(event)"/>

我在点击事件上尝试了使用 Knockout 数据绑定的以下代码。

<input type="button" value="TestKO" data-bind="click: function(){ test(event) }"/>

我也尝试在参数上传递 window.event 但无济于事。

它不断向我抛出错误:-

Uncaught TypeError: Cannot read property 'nodeType' of null 

这是我尝试的 jsfiddle。 http://jsfiddle.net/ybwfe/

【问题讨论】:

  • 在您的小提琴中,您的问题是您在加载 DOM 之前调用了 ko.applyBindings...jsfiddle.net/nemesv/qArv7 那么这只是您的小提琴中的一个问题吗?
  • 你说对了一部分。我加载库的方式无法正常工作。我已经纠正了加载问题。 jsfiddle.net/YbwFe 另外,感谢@Micheal Best 帮助我在 Knockout 中找到事件对象。

标签: javascript jquery knockout.js


【解决方案1】:

Knockout 将事件作为函数的第二个参数提供:

<input type="button" data-bind="click: function(data, event){ test(event) }"/>

参考:http://knockoutjs.com/documentation/click-binding.html#note_2_accessing_the_event_object_or_passing_more_parameters

【讨论】:

  • 是的!这正是我所需要的。非常感谢!!
猜你喜欢
  • 2018-02-27
  • 2021-03-06
  • 2013-01-31
  • 1970-01-01
  • 2013-10-29
  • 2015-02-24
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
相关资源
最近更新 更多