在我的代码中,我将输入添加到页面中呈现的div上,如下所示:
$("#output-area").append("<input type='text' class='timepicker' /><input type='text class='timepicker' />
追加后,我将启动时间选择器,如下所示:
$('.timepicker').timepicker({
timeFormat: 'h:mm p',
interval: 30,
minTime: '12:00am',
maxTime: '11:30pm',
defaultTime: '9:00am',
dynamic: false,
dropdown: true,
scrollbar: true,
change: function(){
console.log("triggered");
}
});
奇怪的是,当我创建时间选择器时,将更改事件添加到DOM时便触发了更改事件。我认为只有在输入的值已 changed 与 created建立时,更改事件才会触发。
答案 0 :(得分:1)
无需修改插件本身,您可以在循环中初始化并在每个实例内为isInit
之类的设置标志,这样您就不会对初始调用做出反应:
$('.timepicker').each(function() {
var isInit = true;
$(this).timepicker({
timeFormat: 'h:mm p',
.....
change: function() {
if (!isInit) {
console.log("triggered");
}
isInit = false
}
});
});
也许您可以使用另一个事件,但是周围有许多时间选择器插件,因此不确定您使用的是哪个。
对我来说,这似乎是插件中的错误