双击时,jQuery UI Datepicker不会关闭

问题描述:

Demo

在Ubuntu,Chrome Mac和其他版本的Chrome 18中转载。双击时,jQuery UI Datepicker不会关闭

只需双击该链接,然后选择一个日期。日期选择器变得不可关闭。我该如何解决?

我想检查日历再次显示它之前当前打开的,但我can't see a property for that

HTML

<a href="#">double click me</a><input/>​ 

JS

$('input').datepicker(); 
$('a').click(function() { 
    $('input').datepicker('show'); 
});​ 

这似乎是默认的动画渐变的一个问题。如果在淡入淡出完成前打开它两次,则会出现问题。设置duration0解决了这个问题,但我喜欢淡入淡出的动画。


我提交了一个bug report。其实是a dupe

+0

没有什么不对的地方,但事实上,你**不要**双击它,你只需点击一次,然后单击其他地方关闭它,如果你想为双击然后使用'.dblclick ()' – CKKiller

+0

@ChristopherKenney您不能对可能双击/三击的最终用户强制执行此类条件,并且因为双击而断定它已损坏。 –

+0

@ChristopherKenney:是的,我知道,但我的用户并不那么聪明。他们喜欢双击事物。这不能停止工作,因为有人不小心双击某件东西,这很荒谬。 – mpen

这是通过Ticket #8174固定。如果您遇到此问题,请尝试升级到更新版本的jQuery UI。

也许这样的事情?

$('a').dblclick(function() { 
    if ($('input').datepicker('widget').is(':visible')) { 
     $('input').datepicker('hide'); 
    } 
});​ 
+0

你试过了吗?不适合我。此外,在动画完成前单击两次时出现问题,实际上它不是双击(AFAICT)特有的,因此,即使此黑客工作正常,但如果用户对它进行了完美定时,它将无法在更长的时间内运行。 – mpen

$('input').datepicker(); 
$status = true; 
$('a').click(function() { 
    if ($status){ 
     $('input').datepicker('show'); 
      $status = false; 
    } 
    else{ 
    $('input').datepicker('hide'); 
     $status = true; 
    }  
}); 

这可能工作,你想要它

+0

看起来工作。我必须确保变量与datepicker的实际状态保持同步。 – mpen

+0

谢谢mattematico。我有20K代表;我想我已经想出了SO的工作原理。我不接受这个,因为这不是一个合适的解决方案。 – mpen