0

因此,用例有一个 div、一个按钮和一个文本框。

在文本框的模糊事件上,div 展开

并在单击按钮时显示警报。

所以这两件事都有效。但是如果我的光标在文本框上并且我尝试单击按钮。然后点击不被提出。我知道,由于按钮已移动,因此点击不会被提升。那么,我的选择是什么

代码的笨拙

http://plnkr.co/edit/TYXLeE?p=preview

4

3 回答 3

2

演示

只需听一下 mousedown ,这确实是您正在寻找的东西。

  $('#clickAbleButton').on('mousedown',function() {

点击是 3 个事件,而不是一个,它们都必须发生在同一个元素上,

  1. 鼠标按下
  2. 鼠标向上
  3. 点击

该元素在 mouseup 之前移开,因此只需监听 mousedown 即可。


真的,你为什么要在点击中移动按钮?我怀疑这个问题确实是一个设计问题,应该这样解决,而不是用 javascript 来解决。

于 2013-09-18T23:00:13.903 回答
0

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');
    });
});
于 2013-09-18T22:59:22.847 回答
0

我会尝试使用 .bind 和 .unbind jquery 函数来处理必要的点击事件

于 2013-09-18T23:28:54.400 回答