【发布时间】:2018-08-24 14:06:40
【问题描述】:
我有一个可在 Chrome 和 IE 中运行的淘汰点击绑定功能,但在 firefox 中出现错误并出现以下错误:
ReferenceError: event is not defined
我意识到我必须传递事件,因为它不是 FF 窗口的一部分,但看起来 FF 更改了绑定,因此我无法传递事件。
我的模板是这样写的:
<button class="btn subplan" data-bind="click: function(data, event) { $root.openPlanModal(data, event) }, css: {'btn-success': (percentComplete()==100 && statusOverride()=='' && SOCexpired()==false) || (statusOverride()=='pass' && SOCexpired()==false), 'btn-warning':percentComplete()<100 && percentComplete()>0 && statusOverride()=='' && SOCexpired()==false, 'btn-danger': statusOverride()=='fail' || SOCexpired()==true}">
<span data-bind="text: name()">Navigationserklärung</span>
<span style="display: block" data-bind="text: latestSOCDateDisplay()"></span>
</button>
然而,当被 FF 渲染时,看起来像这样(没有参数):
<button class="btn subplan btn-success" data-bind="click: function(){ ($root.openPlanModal || $root.trainingModel().openPlanModal)($data, event) }, css: {'btn-success': (percentComplete()==100 && statusOverride()=='' && SOCexpired()==false) || (statusOverride()=='pass' && SOCexpired()==false), 'btn-warning':percentComplete()<100 && percentComplete()>0 && statusOverride()=='' && SOCexpired()==false, 'btn-danger': statusOverride()=='fail' || SOCexpired()==true}">
<span data-bind="text: name()">Navigationserklärung</span>
<span style="display: block" data-bind="text: latestSOCDateDisplay()"></span>
</button>
CSS 绑定似乎仍然有效并相应地为按钮着色,但点击绑定函数的参数已经消失。
【问题讨论】:
-
这个问题stackoverflow.com/questions/18221569/…能解决你的问题吗?
-
不幸的是没有,因为我在函数参数中已经有了这个事件,但是 FF 把它去掉了。
-
我试过这个小提琴:jsfiddle.net/sqL85cfe。它看起来有效。我在您的按钮上添加了
id属性,但没有出现此错误。你能添加你的模型视图吗? -
谢谢何塞。我将不得不与代码所有者核实其所有权。
标签: firefox knockout.js binding click