目前我有一個輸入文本字段,可能有也可能沒有與該特定元素綁定的timespinner。在某些情況下,我需要完全刪除timespinner功能(而不是禁用它),以便在頁面上正確顯示它。TimeSpinner檢查是否未定義不工作
目前,我要檢查的代碼,如果該元素上存在timespinner如下:
if ($("#ElementOfInterest").timespinner !== undefined){
$("#ElementOfInterest").timespinner("destroy");
}
這工作得很好,當頁面第一次加載,但是,這將引發以下異常:
無法在初始化之前調用時間片上的方法;試圖 調用方法「破壞」
出於某種原因,在檢查undefined
通行證,並試圖不存在的元素上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("instance")
但我只是回來:
不確定是不是方法
所以它看起來像檢查的一個實例一個時間記錄器沒有實現。
「這引發異常」。請提供錯誤信息? – 2014-10-17 15:59:10
添加了正在更新中引發的異常。 – Exitium 2014-10-17 16:01:48