重新创建此问题的步骤:
代码:
<div>
<input type="text" onchange="console.log('onchange');$('#message').css('display','none');" >
<div id="message">
Validating
</div>
<br>
<input type="button" onclick="console.log('onclick');" value="click me">
</div>
答案 0 :(得分:5)
这是因为您正在更改布局,这会更改按钮位置并且不会调用按钮鼠标事件。 见演示:
<强> JS Bin 强>
如果你想隐藏div,通过保留它占用的空间,使用:
$('#message').css('visibility','hidden');
答案 1 :(得分:2)
对于onclick
,由于按钮的位置变化,有必要发生mouse-down
和mouse-up
事件,而不是onclick
以下是完整事件的Demo。
答案 2 :(得分:0)
你正在寻找keydown / press / up ...
当用户按下某个键(在键盘上)时会发生onkeydown事件....
<div>
<input type="text" onkeydown="console.log('onchange');$('#message').css('display','none');" >
<div id="message">
Validating
</div>
<br>
<input type="button" onclick="console.log('onclick');" value="click me">
</div>
这里是小提琴
答案 3 :(得分:0)
click事件是mousedown和mouseup两个事件的组合。你可以改用mousedown。
<div>
<input type="text" onchange="console.log('onchange');$('#message').css('display','none');" >
<div id="message">
Validating
</div>
<br>
<input type="button" onmousedown="console.log('onclick');" value="click me">
</div>