@seeARMS 解决方案this SO https://stackoverflow.com/questions/22614041/bootstrap-datepicker-on-change-firing-3-times为我工作,进行了一项修改:
为您的活动创建单独的函数
一个函数具有 datePicker 方法和您的设置:
$('input_with_date_picker').datePicker({...});
一个单独的功能控制你的on changeDate
event:
$(document).on('changeDate', 'input_with_date_picker', function({..do something..}));
or:
$('input_with_date_picker').on('changeDate', function({..do something..}));
Update:
你提供的小提琴 http://jsfiddle.net/muhaimincs/L093jc7k/12/由于您添加的功能,评论中的内容按预期工作:
$('input.highcharts-range-selector').on('changeDate', function(e) {
alert(e.date);
});
在页面加载时,它会执行两次,因为有两个匹配的元素。它们似乎都是由这个 JS 生成的:
rangeSelector:{
enabled:true,
inputEnabled:true,
inputDateFormat:"%d/%m",
inputEditDateFormat:"%d/%m/%Y",
inputDateParser: function (value) {
value = value.split('/');
console.log(value);
return Date.UTC(
parseInt(value[0]),
parseInt(value[1]) - 1,
parseInt(value[2])
);
}
},
如果您更改任一元素上的日期,该函数将执行一次,这就是您帖子的目标。
您可能会指出它不起作用,因为当您从 datePicker 中选择新日期时,日期不会更新。我不知道为什么会这样,我对 highcharts 不熟悉。