2011-11-06 84 views
0

我收到一條錯誤消息,因爲element.dispatchEvent不是函數。我在rails 3應用程序中使用jQuery與原型。在我的佈局文件,我已經加入了js文件如下jQuery與其他庫

javascript_include_tag 'jquery','jquery_ujs','prototype','shadowbox/shadowbox.js' 
<script type="text/javascript">jQuery.noConflict();</script> 

我也如上面添加jQuery.noConflict和jQuery函數使用jQuery代替$。任何想法如何解決這個問題。?

在我的另一個控制器頁面動作中,我也提到了同樣的事情,因爲有一些js文件只需要爲特定頁面重新加載。

我是js的新手,還有導軌。

+0

如果可能,請不要一次使用多個庫。你真的有這個迫切的理由嗎? –

+0

是的..我在我的應用程序中使用nicEdit,nicEdit使用原型。所以我不能避免原型.. – rubyist

+0

我是對上述。我現在很困惑.. nicEdit是否可以在不使用原型的情況下工作。 ?? – rubyist

回答

1

你應該SRC後使用jQuery.noConflict到jQuery庫

+0

我已經添加它如上。這就夠了嗎?但仍然是獲取上述錯誤信息 – rubyist

0

使用jQuery.noConflict();應該夠了。請檢查瀏覽器中的頁面代碼,以便您可以看到實際添加原型的時間。 你應該有jQuery,然後是.noConflict調用,然後是原型。

0

除了增加「無衝突」的方法,我這樣做,而不是(雖然兩者很可能是最好的):

我會「預設」我的自定義腳本頁面。比方說,我的預測是,我將使用的代碼也許5塊的頁面 - 這是我的預設我的網頁:

jQuery(document).ready(function($) { 
// use $ in here like normal! 
}); 

jQuery(document).ready(function($) { 

}); 

jQuery(document).ready(function($) { 

}); 

jQuery(document).ready(function($) { 

}); 

etc. etc. 

聲明本使用jQuery對象本身傳遞的回調函數的.ready方法因此您可以在功能中再次使用$標識符。我可以重新命名它,以便它們永遠不會發生衝突,並且我可以像通常那樣在該函數內使用$標識符。希望有所幫助。