以下代码是调用日历的例子,日历在页面加载的时候就已经初始化了,当点击id="datepicker"的输入框的时候日历就会显示在其中,但这样的话是在input比较少和固定的情况下,由于页面可能有N个动态生成的input,这样就得初始化日历$( "#datepicker,#其他input id...." ).datepicker();这样的话javascript也要动态生成了,很麻烦,能不能通过 <input ... onClick='javascript:pickDate(this);'> 这样的javascript方式来调用啊? <script>
$(function() {
$( "#datepicker" ).datepicker();
});
</script>
<body>
<p>Date: <input type="text" id="datepicker" /></p>
</body>
$(function() {
$( "#datepicker" ).datepicker();
});
</script>
<body>
<p>Date: <input type="text" id="datepicker" /></p>
</body>
你不如这样做:给需要加日历的input定一个类如 class="datepicker",然后
<script>
$(function() {
$(".datepicker").datepicker();
});
</script>
我的意思是页面加载的时候并不加载日历,pickDate(this)不是绑定日历而是第一次加载日历,并给this赋值,这样能实现吗?
<script>
function pickDate(obj){
$(obj).datepicker();
}
</script>
这可以实现呀。但你觉得这代码可行吗?
这样调用是可以出来,但是鼠标非要在input以外的地方先点击一次,然后在去点击input框才能生效,不知道是什么原因?
这样调用是可以出来,但是鼠标非要在input以外的地方先点击一次,然后在去点击input框才能生效,不知道是什么原因?
你现在才知道会这样呀,所以我问你行吗?
从代码上就可以看出:第一次点击input才会执行绑定日历插件,但是只是绑定哦,不会弹出来。
第二次点击时:再次执行绑定日历插件,但是注意,因第一次绑定过,这时弹出第一次绑定的。而不是本身这次点击绑定的。换句话就是从第二次点击开始,都会多余做一次绑定。
你觉得这合你要求吗?
<script type="text/javascript">
function pickDate(obj){
if(!$(obj).data("date")){
$(obj).datepicker();
$(obj).data("date",true);
}
$(obj).datepicker("show");
}
</script>