来自jquery docs:change
事件在其值发生变化时发送给元素。所以我有input
元素的处理程序来监听change
事件。当我关注这个输入时,我必须改变它的值,所以我有focus
事件的其他处理程序。问题是,当我以编程方式更改输入值后失去焦点时,change
事件不会触发。
焦点处理程序:
focusHandler = function(event){
event.preventDefault();
var elem = $(this),
value = 'FOO';
elem.val(value );
}
它是如何约束的:
$(SF_CONSTANTS.CONTROLS.place).bind('focus', self.placeFocusHandler);
$(SF_CONSTANTS.CONTROLS.place).bind('change', function(event){ self.changeControlHandler('place'); });
为什么会这样? 小提琴example