Jquery 引导数据采集器意外地在另一个事件处理程序中激发更改事件

Jquery 引导数据采集器意外地在另一个事件处理程序中激发更改事件,jquery,twitter-bootstrap,bootstrap-datepicker,Jquery,Twitter Bootstrap,Bootstrap Datepicker,我注意到引导日期选择器触发了意外事件。它只发生在另一个函数/处理程序内部 通常setDate不应该触发事件,也不会!除非我将其包装到另一个函数/处理程序中 试图理解差异并消除不必要的事件触发 请帮忙 //$('.set-date-button').click(function(event) { event.preventDefault(); var startDate = '01/01/2017'; $('.start .date').datepicker('setDate', st

我注意到引导日期选择器触发了意外事件。它只发生在另一个函数/处理程序内部

通常
setDate
不应该触发事件,也不会!除非我将其包装到另一个函数/处理程序中

试图理解差异并消除不必要的事件触发

请帮忙

//$('.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.

使用
change
changeDate
没有任何区别

$('.set date按钮')。单击(函数(事件){
event.preventDefault();
var startDate='2017年1月1日';
$('.start.date').datepicker('setDate',startDate');
});
$(document).on('change','start.date',function(){
警报(“开火!”);
});

设定日期

因为当您创建更改事件时,日期已经设置好了。如果顺序相反,它将触发更改事件:jsfiddle.net/xek22wpq/9

,因为创建更改事件的日期已经设置好了。如果按相反顺序,它将触发更改事件:jsfiddle.net/xek22wpq/9

我发现
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!');
});

我发现
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!');
});

请注意,您在使用小提琴和代码片段时链接了文档。第一个组件既没有
datepicker
也没有
setDate
方法。fiddle和snippet都不起作用。请编辑您的问题,指定您正在使用的组件。链接错误,已修复。请注意,您在小提琴和代码段中链接了文档。第一个组件既没有
datepicker
也没有
setDate
方法。fiddle和snippet都不起作用。请编辑您的问题,指定您正在使用的组件。错误链接,已修复。