2011-11-06 89 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方法因此您可以在功能中再次使用$标识符。我可以重新命名它,以便它们永远不会发生冲突,并且我可以像通常那样在该函数内使用$标识符。希望有所帮助。