我正在使用 datepicker 从这个网站进行引导 https://eonasdan.github.io/bootstrap-datetimepicker/
当输入为空时,我试图从一开始点击的日期开始捕获点击。 dp.change 的问题是当我点击日历图标时捕获了第一次点击事件。如果我点击 td.day 它不起作用。
$(document).ready(function(){
$(function () {
$('#datetimepicker').datetimepicker({
format:'YYYY-MM-DD',
locale: 'en'
});
});
$(".datepicker .datepicker-days td.day").click(function(){
alert('day clicked');
});
$("#datetimepicker").on("dp.change", function() {
alert('calendar icon clicked');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
<div class="input-group date reload_element" id="datetimepicker">
<span class="input-group-addon reload_element cursor-pointer">
<i class="fa fa-calendar"></i>
</span>
<input type="text" id="start_date" class="form-control reload_element" style="width:100px;" autocomplete="off"/>
</div>
原文由 Melissa 发布,翻译遵循 CC BY-SA 4.0 许可协议
我来晚了,我没有解决方案,但我知道为什么您的代码不起作用。
日历的结构在每次放映时都会生成和删除,因此开始时附加的监听器会被删除而失去作用,应该在日历重新生成的那一刻附加监听器。
也许您想要的解决方案是这样的:警告代码未经过测试。