В настоящее время у меня есть текстовое поле ввода, которое может иметь или не иметь счетчик времени, привязанный к этому конкретному элементу. В некоторых случаях мне нужно полностью удалить функциональность timespinner (в отличие от ее отключения), чтобы правильно отобразить ее на странице.TimeSpinner Check If Undefined Not Working
В настоящее время у меня есть код, чтобы проверить, если 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
из кода.
Я пропустил какую-то специальную чек или что-то еще? Что тут происходит?
Update
Я попытался следующий код, предложенный @GlenSwift:
if (typeof $("#ElementOfInterest").spinner("instance") !== 'undefined') {
$("#ElementOfInterest").timespinner("destroy");
}
Это, однако, дал мне это исключение:
не может вызывать методы блесны до инициализации ; попытался метод вызова «например»
Я также попытался timespinner("instance")
, но я просто вернулся:
неопределенный не метод
Так это выглядит, как проверка для экземпляра таймер не был реализован.
«это исключает». Pls, предоставить сообщение об ошибке? –
Добавлено исключение, которое бросается в мое обновление. – Exitium