问题原因
在angular项目中,有个场景需要使用ng-repeat重复生成多条日期选择框。但当使用id选择器来生成时,发现无法正确触发datepicker的日期选择框。
经查询发现出现这个问题的原因在于,在点击添加多行之前,日期组件就已经初始化完成了,无法再操作新增的DOM。
解决方法
方法1:设置监听函数
设置一个监听函数,在其内部初始化日期组件:
js部分:
// 初始化日历组件
initDatePicker(i) {
** $('body').on('focus',".mydatepicker",function(){ //监听函数 **
$('#beginTime'+i).datepicker({
defaultDate: "+1w",
minDate: new Date(),
dateFormat: 'yy-mm-dd',
showButtonPanel: true,
onClose: function( selectedDate ) {
$( "#endTime"+i ).datepicker( "option", "minDate", selectedDate || new Date() );
}
});
$('#endTime'+i).datepicker({