Javascript TimeSpinner检查是否未定义不工作
目前,我有一个输入文本字段,该字段可能有也可能没有一个TimePinner绑定到该特定元素。在某些情况下,我需要完全删除timespinner功能(而不是禁用它),以便在页面上正确显示它 目前,我有代码检查元素上是否存在timespinner,如下所示:Javascript TimeSpinner检查是否未定义不工作,javascript,jquery,jquery-ui,spinner,jquery-ui-spinner,Javascript,Jquery,Jquery Ui,Spinner,Jquery Ui Spinner,目前,我有一个输入文本字段,该字段可能有也可能没有一个TimePinner绑定到该特定元素。在某些情况下,我需要完全删除timespinner功能(而不是禁用它),以便在页面上正确显示它 目前,我有代码检查元素上是否存在timespinner,如下所示: if ($("#ElementOfInterest").timespinner !== undefined){ $("#ElementOfInterest").timespinner("destroy"); } 当第一次加载页面时,这
if ($("#ElementOfInterest").timespinner !== undefined){
$("#ElementOfInterest").timespinner("destroy");
}
当第一次加载页面时,这可以正常工作,但是,这会引发以下异常:
无法在初始化之前调用timespinner上的方法;企图
调用方法“destroy”
出于某种原因,对未定义的的检查会传递并尝试在不存在的元素上创建一个timespinner
因此,目前要让我的UI正常运行,唯一的方法是将其包装在一个try/catch
块中,如下所示:
if ($("#ElementOfInterest").timespinner !== undefined) {
try {
$("#ElementOfInterest").timespinner("destroy");
} catch (error) {
}
}
这是可行的,但相当草率。我希望检查成功并从代码中删除try/catch
块
我是不是少了一张特别支票什么的?这是怎么回事
更新
我尝试了@GlenSwift建议的以下代码:
if (typeof $("#ElementOfInterest").spinner("instance") !== 'undefined') {
$("#ElementOfInterest").timespinner("destroy");
}
然而,这给了我一个例外:
无法在初始化之前调用微调器上的方法;企图
调用方法“实例”
我还尝试了timespinner(“实例”)
,但我还是得到了回报:
未定义不是一种方法
因此,检查timespinner的实例似乎未实现。请尝试:
if (typeof $( "#ElementOfInterest" ).spinner( "instance" ) !== 'undefined') {
$("#ElementOfInterest").timespinner("destroy");
}
参考:井$(“#兴趣元素”)。timespinner!==undefined
只需检查是否定义了$()。timespinner
,只要加载插件,它就会被定义。检查元素是否具有微调器添加的类如何if($(“#ElementOfInterest”).hasClass('ui-spinner-input'))
“这会引发异常”。请提供错误消息?添加了在我的更新中引发的异常。我尝试了,但没有成功。我相信我以前试过,但没有任何好结果。我更新了我的问题,但收到了一个例外。请检查代码执行时是否加载了jquery和jquery ui