Bootstrap 日期选择器意外触发了另一个事件处理程序中的更改事件
Bootstrap datepicker unexpectedly fires change event inside another event handler
我注意到 Bootstrap 日期选择器触发了意外事件。它只发生在另一个 function/handler.
内部
通常setDate
不应该触发事件,它确实没有!除非我把它包装成另一个 function/handler.
试图理解差异并摆脱不必要的事件触发。
请帮忙。
//$('.set-date-button').click(function(event) {
event.preventDefault();
var startDate = '01/01/2017';
$('.start .date').datepicker('setDate', startDate);
//}); When commented, change event doesn't fire, when uncommented - unexpected change event fires.
https://jsfiddle.net/xek22wpq/
使用 change
或 changeDate
没有任何区别。
$('.set-date-button').click(function(event) {
event.preventDefault();
var startDate = '01/01/2017';
$('.start .date').datepicker('setDate', startDate);
});
$(document).on('change', '.start .date', function() {
alert('fired!');
});
<link href="https://rawgit.com/uxsolutions/bootstrap-datepicker/master/dist/css/bootstrap-datepicker.standalone.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://rawgit.com/uxsolutions/bootstrap-datepicker/master/dist/js/bootstrap-datepicker.min.js"></script>
<button class='set-date-button'>Set Date</button>
<div class='start'>
<input class='date' placeholder='mm/dd/yyyy'>
</div>
因为在您创建更改事件日期时已经设置好了。如果你逆序它会触发变化事件:jsfiddle.net/xek22wpq/9
https://github.com/uxsolutions/bootstrap-datepicker/issues/575
我发现 update
方法不会触发 changeDate
,但会触发 change
。这就是我消除这种额外射击的方式:
$('.set-date-button').click(function(event) {
event.preventDefault();
var startDate = '01/01/2017';
$('.start .date').datepicker('update', startDate);
});
$(document).on('changeDate', '.start .date', function() {
alert('fired!');
});
我注意到 Bootstrap 日期选择器触发了意外事件。它只发生在另一个 function/handler.
内部通常setDate
不应该触发事件,它确实没有!除非我把它包装成另一个 function/handler.
试图理解差异并摆脱不必要的事件触发。
请帮忙。
//$('.set-date-button').click(function(event) {
event.preventDefault();
var startDate = '01/01/2017';
$('.start .date').datepicker('setDate', startDate);
//}); When commented, change event doesn't fire, when uncommented - unexpected change event fires.
https://jsfiddle.net/xek22wpq/
使用 change
或 changeDate
没有任何区别。
$('.set-date-button').click(function(event) {
event.preventDefault();
var startDate = '01/01/2017';
$('.start .date').datepicker('setDate', startDate);
});
$(document).on('change', '.start .date', function() {
alert('fired!');
});
<link href="https://rawgit.com/uxsolutions/bootstrap-datepicker/master/dist/css/bootstrap-datepicker.standalone.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://rawgit.com/uxsolutions/bootstrap-datepicker/master/dist/js/bootstrap-datepicker.min.js"></script>
<button class='set-date-button'>Set Date</button>
<div class='start'>
<input class='date' placeholder='mm/dd/yyyy'>
</div>
因为在您创建更改事件日期时已经设置好了。如果你逆序它会触发变化事件:jsfiddle.net/xek22wpq/9
https://github.com/uxsolutions/bootstrap-datepicker/issues/575
我发现 update
方法不会触发 changeDate
,但会触发 change
。这就是我消除这种额外射击的方式:
$('.set-date-button').click(function(event) {
event.preventDefault();
var startDate = '01/01/2017';
$('.start .date').datepicker('update', startDate);
});
$(document).on('changeDate', '.start .date', function() {
alert('fired!');
});