因此,用例有一个 div、一个按钮和一个文本框。
在文本框的模糊事件上,div 展开
并在单击按钮时显示警报。
所以这两件事都有效。但是如果我的光标在文本框上并且我尝试单击按钮。然后点击不被提出。我知道,由于按钮已移动,因此点击不会被提升。那么,我的选择是什么
代码的笨拙
因此,用例有一个 div、一个按钮和一个文本框。
在文本框的模糊事件上,div 展开
并在单击按钮时显示警报。
所以这两件事都有效。但是如果我的光标在文本框上并且我尝试单击按钮。然后点击不被提出。我知道,由于按钮已移动,因此点击不会被提升。那么,我的选择是什么
代码的笨拙
只需听一下 mousedown ,这确实是您正在寻找的东西。
$('#clickAbleButton').on('mousedown',function() {
点击是 3 个事件,而不是一个,它们都必须发生在同一个元素上,
该元素在 mouseup 之前移开,因此只需监听 mousedown 即可。
真的,你为什么要在点击中移动按钮?我怀疑这个问题确实是一个设计问题,应该这样解决,而不是用 javascript 来解决。
index.html 的快速解决方案:
<body>
<h1>Hello Plunker!</h1>
<input type="button" id="clickAbleButton" value="Click Me" />
<input type="text" id="myInputText" value="Empty Text Box" />
<div style="height:40px;" id="everExpandingDiv">
This is my container div
</div>
或者,关于 script.js 的最佳解决方案:
$(function() {
$('#myInputText').on('mousedown',function()
{$('#everExpandingDiv').height($('#everExpandingDiv').height()+20);});
$('#clickAbleButton').click(function() {
alert('button click was raised');
});
});
我会尝试使用 .bind 和 .unbind jquery 函数来处理必要的点击事件