в javascript, есть ли такое событие, как onCreate? - PullRequest
3 голосов
/ 08 ноября 2011

Я работаю с существующей системой, созданной кем-то другим (здесь больше нет). В этой системе нажатие на текст в специальном <span> вызовет функцию js, которая заменит текст на поле <input>. Текст, который был там, назначается как value элемента <input>.

Событию onblur назначено это новое поле <input>. Это вызывает функцию, которая обновляет данные в базе данных через вызов AJAX. В рамках этого действия поле <input> заменяется новым значением (то же содержимое <span>), а событие onclick переназначается. Таким образом, вы можете нажать на текст, изменить его, щелкнуть в другом месте, и он автоматически обновится в базе данных. Затем вы можете сделать это снова, так как он устанавливает исходные события динамически с каждым обновлением.

Именно между первым событием и вторым я хочу получить доступ к этому полю <input>. Я хочу добавить jquery .datepicker() к нему.

Как мне поступить с вызовом .datepicker() для динамически создаваемого элемента?

1 Ответ

4 голосов
/ 08 ноября 2011

Нет, нет события, похожего на onCreate. Самое близкое, что вы можете найти, это jQuery's .live (). Это позволяет вам связать событие с элементом сейчас или в будущем. Я также думаю, что это, вероятно, решит вашу проблему.

http://api.jquery.com/live/

$('input').live('click', function() {
   $(this).datepicker();
});

Как удобно указывал AutoSponge, с jQuery 1.7 прямая трансляция устарела. Вместо этого они предлагают использовать или делегировать.

http://api.jquery.com/on/

http://api.jquery.com/delegate/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...