单击链接时,Jquery UI Datepicker 不再显示

Posted

技术标签:

【中文标题】单击链接时,Jquery UI Datepicker 不再显示【英文标题】:Jquery UI Datepicker doesn't show again when link is clicked 【发布时间】:2012-08-22 06:02:32 【问题描述】:

我似乎有这个工作,除了一旦点击链接,日期选择器打开,然后我选择一个日期,一切都很好,然后一旦我尝试再次点击链接,日期选择器就会再也打不开了。

我做错了什么?

<html>

<head>

<!-- LOAD JQUERY LIBRARY: -->  
    <link   href="jq/jquery-ui.css"         type="text/css" rel="stylesheet" />
    <script src="jq/jquery.min.js"          type="text/javascript"> </script>
    <script src="jq/jquery-ui.min.js"       type="text/javascript"> </script>

<script type="text/javascript">

function test()  

var datePickerValue = null; 

$("#d1").datepicker().datepicker("show").change(function () 
 
    $('#d1').datepicker(onSelect:  datePickerValue = $(this).val() ).hide();

  alert("You picked: " + datePickerValue);
); 



 


</script>



</head>

<body>

<div id="d1"></div>
<a href="javascript:test()">test</a>

</body>

</html>

【问题讨论】:

【参考方案1】:

只需在 datepicker() 之前添加 show 方法,如下所示:

$("#d1").show().unbind().datepicker().datepicker("show").change(function ()   
   $('#d1').datepicker(onSelect:  datePickerValue = $(this).val() ).hide();
   alert("You picked: " + datePickerValue);
); 

这将解决您的问题。

【讨论】:

非常感谢昆丹。这很好用,但我注意到,一旦选择了日期,警报框就会弹出 2 或 3 次以上。什么会导致这种情况,以及可以采取什么措施来解决这种行为,使警报框只弹出一次? 使用event.preventDefault()。 @JasonKelly,我重新检查了您的代码,我注意到这是因为您一次又一次地将 datepicker 绑定到 div。所以在这种情况下,只需先解除绑定,然后再次绑定。我已经更新了我的答案,请看一下。 哇!不管你做什么,它就像一个魅力。非常感谢您!!!!很惊讶有像你这样的优秀、聪明和超聪明的人在那里。非常感谢。你真是个天才!【参考方案2】:

对不起,如果我在这里完全不合时宜,但如果您使用 jquery .on - http://api.jquery.com/on/

,您可能会取得更大的成功

所以在你的链接中添加一个 id 或类:

<a class="clicky" href="#">test</a>

然后像这样调用你的函数:

$("body").on("click", ".clicky", test);

我认为这会解决你的问题,但我可能错了

【讨论】:

【参考方案3】:
function test() 
    $('#d1').datepicker(onSelect: function()alert("You picked: " + $(this).val())) ); 
 

【讨论】:

以上是关于单击链接时,Jquery UI Datepicker 不再显示的主要内容,如果未能解决你的问题,请参考以下文章

单击滑块轨道时获取 Jquery-UI 滑块值?

单击/激活 jQuery UI 选项卡时触发函数?

在框外单击鼠标时关闭 jQuery UI 对话框

jQuery UI - 在外部单击时关闭对话框

单击按钮时防止jquery ui打开第二个对话框

单击另一个元素时,您可以触发 jQuery UI 选择菜单吗?