Javascript Highstock inputDateParser触发三次
我不确定是什么原因导致它在选择了一个日期后三次开火。以下是为Javascript Highstock inputDateParser触发三次,javascript,highstock,bootstrap-datepicker,Javascript,Highstock,Bootstrap Datepicker,我不确定是什么原因导致它在选择了一个日期后三次开火。以下是为范围选择器设置的选项 rangeSelector:{ enabled:true, inputEnabled: true, inputDateFormat: '%d/%m/%Y', inputEditDateFormat: '%d/%m/%Y', inputDateParser: function (value) { value = value
范围选择器设置的选项
rangeSelector:{
enabled:true,
inputEnabled: true,
inputDateFormat: '%d/%m/%Y',
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])
);
}
}
通过使用backbone.view
jquery选择器,这里是我如何启动图表的
this.$el.highcharts(选项,this.extra)代码>
和extra
作为触发日期选择器的附加设置
highlightSer: function (chart){
setTimeout(function () {
$('input.highcharts-range-selector', $(chart.container).parent())
.datepicker({
format: "dd/mm/yyyy",
todayBtn: "linked",
autoclose: true,
todayHighlight: true,
orientation: "auto right"
});
}, 0);
}
有人经历过这种情况吗?@seeARMS solution from worked for me,只做了一次修改:
为您的活动创建单独的功能
一个函数具有datePicker方法和您的设置:
$('input_with_date_picker').datePicker({...});
一个单独的函数控制changeDate上的事件:
$(document).on('changeDate', 'input_with_date_picker', function({..do something..}));
或:
更新:
在注释中,由于您添加了以下功能,注释按预期工作:
$('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])
);
}
},
如果更改其中任何一个元素的日期,函数将执行一次,这是本文的目标
从日期选择器中选择新日期时,由于日期未更新,您可能会指示它不起作用。我不知道为什么会这样,我不熟悉highcharts。你能提供像JSFIDLE这样的实时演示吗?谢谢。嗨,Pawel,这是JSFIDLE哦,这个日历的问题是肯定的。一旦移除,它就可以正常工作(只需一次呼叫):。无论如何,您在使用Date.UTC()
时出现了错误,值的顺序是错误的(上面的示例已经解决了这个问题)。然后,阅读有关datepicker三次致电的内容。感谢您的修复。顺便说一句,无论何时我输入的日期早于1987年7月,highchart都会将其追溯到1987年7月。这是错误吗?您只能浏览图表上的可用日期。这不是Highchart的解决方案。看,它似乎工作得很好。代码触发两次,因为您有两个元素满足此条件:$('input.highcharts range selector')
:From输入和To输入。如果不是的话,代码将触发6次,每次输入3次。我不明白你的意思。你能提供样本JSFIDLE吗?哈!我妻子就是这么说的!你的小提琴是我的样品,因为你的小提琴按预期工作。查看我的更新。
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])
);
}
},