Как jqueryui datepicker предотвращает событие onblur? - PullRequest
1 голос
/ 23 января 2012

Я сейчас изучаю jqueryui datepicker , и я не могу понять, как он предотвращает эффект onblur на входе.

То есть: когда вы щелкаете по вводу с помощью указателя даты, появляется календарь, и вы можете нажать на следующий / предыдущий месяц, но ввод остается сфокусированным. Вы также можете щелкнуть в любом месте календаря, и он не исчезнет. Но когда вы нажимаете любую другую ссылку за пределами календаря и ввода, календарь исчезает, и ссылка работает, это означает, что не существует прозрачного div на странице, содержащей событие onclick (для закрытия календаря).

Кажется, что-то вроде события onblur связано с входом. Но это событие не срабатывает, когда вы нажимаете в календаре. Как они это делают?

Подобный вопрос обсуждался здесь , но в jquery datepicker нет тайм-аутов.

1 Ответ

1 голос
/ 17 февраля 2012

Так вот как это работает в jqueryui datepicker. Там есть вход и событие onfocus, чтобы показать календарь div. И нет никакого onblur события. Вместо этого есть событие onmousedown, прикрепленное ко всему документу. Там мы проверяем event.target и его родителей на соответствие нашему календарному классу div и вводу.

...