下拉框切换时datetimepicker组件添加成功但无法移除,求助
问题:切换下拉选项时无法移除datetimepicker组件
我尝试通过以下代码在事件切换时添加和移除datetimepicker组件。该组件能在下拉框切换事件中成功添加,但在else分支中无法移除。能否有人帮忙解决此问题?
代码如下:
function showoption(obj) { if (obj.value == "date") { $('#txtval').datetimepicker({ weekStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, forceParse: 0, showMeridian: 1, pickerPosition: "bottom-left", startDate: new Date() }); } else { $('#txtval').datetimepicker("destroy..."); } }
解决方案
嘿,我一眼就瞅出问题所在啦!你在else分支里调用销毁方法的时候多写了三个点——"destroy..."是错误的写法,正确的方法名应该是"destroy",没有多余的省略号。
先给你修正后的代码:
function showoption(obj) { if (obj.value == "date") { $('#txtval').datetimepicker({ weekStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, forceParse: 0, showMeridian: 1, pickerPosition: "bottom-left", startDate: new Date() }); } else { // 去掉多余的三个点,使用正确的destroy方法 $('#txtval').datetimepicker("destroy"); } }
另外,给你提个实用小建议:为了避免用户反复切换选项时,重复初始化组件导致的奇怪异常,最好在初始化前先销毁可能存在的实例,比如这样优化:
function showoption(obj) { if (obj.value == "date") { // 先销毁旧实例,再创建新的,防止重复绑定事件或组件冲突 $('#txtval').datetimepicker("destroy").datetimepicker({ weekStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, forceParse: 0, showMeridian: 1, pickerPosition: "bottom-left", startDate: new Date() }); } else { $('#txtval').datetimepicker("destroy"); } }
这样不管用户切换多少次选项,组件都能稳定工作,不会出现初始化多次导致的异常情况~
内容的提问来源于stack exchange,提问作者vinit agrawal
相关产品推荐
相关产品推荐

