当有人点击两个input
字段之一时,尝试触发主干事件。这可以在外部点击时正确触发,但我希望在您单击OTHER字段时不会触发它。
var ItemView = Backbone.View.extend({
events: {
'blur input': 'blurInputs'
},
blurInputs: function(){
if ( $('input.description').is(":focus") || $('input.amount').is(":focus") ){
// do nothing
} else {
// do something
}
}
});
答案 0 :(得分:3)
问题可能是因为在其他输入框获得焦点之前触发了模糊事件。
可能的黑客攻击是等待几毫秒,然后再检查输入框是否有焦点
blurInputs: function() {
setTimeout(function() {
if (this.$('input.description').is(':focus') || this.$('input.amount').is(':focus')) {
// do nothing
} else {
// do something
}
}, 50);
}
答案 1 :(得分:0)
这是基于Paul的答案,但它对我的用例很有用
onBlur: function(e) {
var self = this;
setTimeout(function() {
if(self.$el.find('input:focus').length == 0) {
console.log("BLUR");
}
}, 500);
},