要解决这个问题,可以使用事件委托和动态绑定事件的方法。通过将事件绑定到父元素上,可以确保新添加的时间选择器也能触发相同的事件。
以下是一个使用jQuery的示例代码:
HTML代码:
JavaScript代码:
// 当页面加载完毕时绑定事件
$(document).ready(function() {
// 时间选择器改变事件的处理函数
function timepickerChangeHandler() {
// 获取当前时间选择器的值
var selectedTime = $(this).val();
// 更新所有时间选择器的值
$(".timepicker").each(function() {
$(this).val(selectedTime);
});
}
// 添加时间选择器的按钮点击事件处理函数
$("#add-timepicker").click(function() {
// 创建新的时间选择器元素
var newTimepicker = $("");
// 绑定时间选择器改变事件
newTimepicker.on("change", timepickerChangeHandler);
// 将新的时间选择器添加到容器中
$("#timepickers-container").append(newTimepicker);
});
// 初始化时间选择器改变事件
$(".timepicker").on("change", timepickerChangeHandler);
});
上述代码首先为最初的时间选择器绑定了改变事件处理函数timepickerChangeHandler
。然后,它通过点击“添加时间选择器”按钮动态地创建并添加了新的时间选择器,并为每个时间选择器绑定了相同的改变事件处理函数。每当一个时间选择器的值发生改变时,所有时间选择器的值都会更新为相同的值。