1

我想要做的是以下内容:

我有一个<input>元素,并且onclick在那个输入中,我切换了某个元素<div>(请参见下文)

<div>
   <table>
      <tr>...</tr>
      ...
      ...
   </table>
</div>

当我单击上表中的一行时,我想触发一个事件(例如,将某个值放在<input>上面,然后隐藏整个<div>. 我已经让它工作这么远了。

问题:当显示 div 但没有 <tr>点击(例如点击背景)时,我想隐藏<div>这一次。所以我把onblur事件放在了,<input>并在发生这种情况时隐藏了 div。这行得通。

问题:但是现在,当我正确选择 a<tr>时,onblur首先触发 ,因此 div 和 table 被隐藏并且没有触发 tr onclick 。:(

到目前为止我的解决方案:我删除了 onblur 事件并制作了类似的东西

$(document).mousedown(function() {
   If event.target == myDiv
      dont hide div, so onclick is triggered (manully hide later anyway)
   else //background is clicked
      hide div yey
});

问题:这是一个体面的解决方法吗?或者,还有更好的方法?我想知道 jQuery UI 如何实现这一点,因为我看到 datepicker 也是一个 div。抱歉,我的 jQuery 水平仍然不允许我正确阅读他们的实现:/ 如果有人好心向我解释。谢谢你。

4

1 回答 1

1

做类似的事情

someTimeout = setTimeout(function(){ someFunction(); }, someDuration) 

$("#someID").click(function() {
   clearTimeout(someTimeout );
});
于 2013-08-22T04:55:24.863 回答