Может кто-нибудь сказать мне, что не так с моим живым методом jQuery?
Я создал это простое приложение для выбора времени, но по какой-то причине этот фрагмент кода не работает. У меня было это работает (возможно, это было мое воображение).
У меня есть 4 радио кнопки. С каждой кнопкой, к которой прикреплено событие click (с помощью метода live jquery), я показываю DIV и скрываю другие DIV. Я также (я думал, что я был), добавив метод плагина для недавно показанного DIV.
Посмотрите на ссылку ниже, и вы поймете, что я имею в виду. Первый DIV работает, но последующие - нет. Что мне не хватает?
Спасибо!
1 ответ
Есть много проблем с вашим кодом. С одной стороны, есть несколько текстовых полей с идентификаторами starttime
а также endtime
тогда как идентификатор должен встречаться в документе только один раз.
Причиной вашей проблемы является тот факт, что при нажатии любой кнопки timepicker
будет инициализирован для всех элементов, соответствующих $("#starttime, #endtime")
селектор. Это будет означать первое div
(который виден), работает хорошо, и поля выбора располагаются хорошо, но для последующего div
s, он позиционируется в то время, когда div, с которым они связаны, скрыты, и поэтому их позиции не могут быть рассчитаны.
Я хотел бы изменить код, чтобы ваш div
имеют идентификаторы "recur1", "recur2" и т. д., а не "daily" и "weekly", а также дают всем из них класс "recur". Тогда вы сможете удалить все ваши операторы if и просто выполните:
$('.recur').hide();
$('#recur'+recurType).show();
Это также позволит вам сделать это, что решит вашу проблему:
$('#recur'+recurType).find("#starttime, #endtime").timePicker({ ... });