拥有此示例代码:
<input type="text" id="changeid">
<a href="#" id="clickb">click</a>
<script>
$('#clickb').on("click", function(event){
alert(1);
return false;
});
$('#changeid').on("change", function(event){
alert(2);
return false;
});
</script>
将某些内容放入文本字段并立即单击该链接时,仅触发onchange事件,但不会触发链接单击事件。 这是为什么? 似乎更改事件阻止了click事件?
答案 0 :(得分:11)
被alert
阻止。将alert
更改为console.log
您会发现两个事件全部被解雇。
的 The demo. 强> 的
$('#clickb').on("click", function(event){
console.log(1);
return false;
});
$('#changeid').on("change", function(event){
console.log(2);
return false;
});
答案 1 :(得分:4)
当你编辑输入然后点击链接时,内部会发生以下内容
blur
事件change
事件,因为它引发了blur
并且值已更改change
事件回调会打开alert(2)
click
。解决方案不是使用alert
(正如xdazz提议的那样)。
答案 2 :(得分:1)
使用此
$("#changeid").live('change', function () ...
答案 3 :(得分:0)
onchange事件仅在元素模糊后触发。因此,当您键入一些文本并首先单击链接时,元素在文本字段上模糊。使用onkeyup事件处理更改事件的最佳方法是跟踪对文本字段所做的更改。