给定 HTML:
<input type="text" id="test" />
和 JavaScript:
var $test = $('#test');
$test.on('keydown', function(event) {
if (event.keyCode === 9) {
$(event.target).val('change it!');
}
});
$test.on('change', function(event) {
alert('I am not called!');
});
如果我在输入中输入任何内容并点击tab,为什么change
事件不会触发?事件keydown
触发,并更新输入的值。
如果我删除.val()
呼叫,那么change
会触发。
起初,我认为这是一个 jQuery 问题(运行 1.9.1),但确认如果我使用纯 JavaScript 也会发生相同的行为。