2009-08-14 99 views
1

這個問題與我之前的問題有些相關(不需要通過它) link text ,雖然這一個更像是一個Ajax問題。蛋糕原型框架問題php

我測試我的網頁的螢火,我收到以下錯誤

Event.Observe不是一個函數

Event.observe('form908983160', 'submit', function(event) { new Ajax.Updater('comments','/blog/posts/comments/add', {asynchronous:true, evalScripts:true, parameters:Form.serialize('form908983160'), requestHeaders:['X-Update', 'comments']}) }, false); 

我使用的開發我的蛋糕PHP應用程序原型框架。 我應該如何解決這個問題? 夥計們,我真的需要你們的幫助。我真的被困在這一個。 [:(]

+0

你檢查是否原型加載正確在您的網站?在firebug中,你可以通過運行'$('form908983160')' – RaYell 2009-08-14 05:30:55

+0

@RaYell來輕鬆檢查:如果我沒有記錯,螢火蟲會通過itslef定義一個$函數;所以即使原型沒有加載,這也可以工作;請參閱http://getfirebug.com/commandline.html – 2009-08-14 05:39:18

+0

是的,但默認實現不會找到您的元素和原型的意志。 – RaYell 2009-08-14 05:40:43

回答

1

prototype.js中必須是:

  • 在頁面加載(驗證它不是404,例如)
  • 加載頁面的腳本執行前

這通常意味着你需要首先包含的prototype.js,並且,只有在這之後,你可以包括你的腳本。

一點題外話:你是不是在頁面上使用任何其他JS框架,當然...

+0

由於我爲我的應用程序使用了蛋糕php,我的prototype.js文件位於app/webroot/js文件夾中。此外,我在default.ctp文件中添加了 $ javascript-> link(array('prototype'))以產生鏈接到JavaScript文件。我還應該做什麼? – 2009-08-14 05:43:58

0

記住任何Event.observers需要在全球

Event.observe(window,'loaded',f); 
// or 
Event.observe(document,'dom:loaded',f) 

使用否則會不行。

對我來說,它看起來像連接到Prototype有問題。打開螢火蟲,並嘗試看到你的腳本文件的內容 - 如果你看到HTML,這意味着什麼事情變得非常錯誤:-)