为什么这些Element.observe'ajax:events'立刻被解雇? - 原型

时间:2011-05-16 10:39:24

标签: javascript ajax events javascript-events prototypejs

我有一个form_element我想要更改发布时的样式。

我已经改变了这样的工作代码:

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

到此:

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

由于某种原因,第二个在加载页面时立即触发 - 这与事件无关。我尝试更改事件ajax:完成/成功/无论如何它仍然会过早地触发。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

它在声明时触发,因为

changeFormToPostingStyle(form_element)

是对函数的调用,并且observe期望BE是函数或对函数的调用返回函数。将其更改为

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

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

并在该函数中使用this