Почему эти Element.observe 'ajax: events' запускаются немедленно?- Прототип - PullRequest
1 голос
/ 16 мая 2011

У меня есть form_element, который я хочу изменить, когда он будет опубликован.

Я изменил уже работающий код следующим образом:

form_element.observe("ajax:before", function(){ /*do stuff*/ });

на этот:

form_element.observe("ajax:before", changeFormToPostingStyle(form_element));

По какой-то причине второй запускается сразу, когда страница загружена -это независимо от события.Я попытался изменить событие ajax: завершено / успешно / что угодно, и оно все равно срабатывает преждевременно.Есть идеи?

1 Ответ

1 голос
/ 16 мая 2011

Это срабатывает во время оператора, потому что

changeFormToPostingStyle(form_element)

- это вызов функции, и наблюдатель ожидает, что это будет функция или вызов функции, которая возвращает функцию.Измените его на

form_element.observe("ajax:before", function() { changeFormToPostingStyle(this) });

или

form_element.observe("ajax:before", changeFormToPostingStyle);

и используйте this в этой функции

...