【发布时间】:2013-03-01 15:41:02
【问题描述】:
在我看来,我有这样的事件:
events: {
'click .po_total .updates_total': 'updateTotal',
'focusout .po_total .updates_total': 'updateTotal',
'keyup .po_total .updates_total': 'updateTotal'
}
haml JSHTML 是:
%input.span2#shipping.updates_total{type: "number", name: "shipping", min: "0.00", step: "0.01", value: "0.00"}
这里是更新的代码
updateTotal: function(e) {
if(e){
e.preventDefault();
e.stopImmediatePropagation();
}
this.$el.find('.po_total #total').html(this.getOrderTotal());
if (Application.Helpers.currencyToValue(this.$('#total').html()) > 0 ) {
this.watchTotal(e);
}
},
问题是当值更改为 0 时 updateTotal 事件不会触发。它在所有其他时间都有效,但在它为 0 时不会。我需要它在值为 0 时工作,因为有条件行为当值为 0 时发生在 updateTotal 中,当前从未发生。
当值变为 0 时如何触发事件?an
【问题讨论】:
-
您在此处粘贴的代码不相关。我们需要查看
updateTotal的代码。 -
我会把它贴出来,但我的问题是函数没有被触发,而不是函数中的代码。即使函数只是:updateTotal: function(){alert('doing stuff');} 它也不起作用
-
将代码添加到顶部
-
我在其中看到“total > 0”if() 语句。你确定这个函数实际上没有被调用,而不是被调用然后什么都不做,因为你正在寻找一个大于 0 的值?
-
如果事件没有触发,则它不是 Backbone。这是 jsFiddle 显示使用 '0' 的 keyup。 jsfiddle.net/phoenecke/6qkXm/5
标签: javascript javascript-events backbone.js