单击链接时,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 不再显示的主要内容,如果未能解决你的问题,请参考以下文章