我正在构建一个rails应用程序并安装这个名为“best-in-place”的gem进行一次性编辑。它工作了一段时间,但在我遇到jQuery和Prototype冲突后,它停止工作,现在我在尝试加载页面时收到此错误消息。
error http://dl.getdropbox.com/u/3481269/Screen%20shot%202011-04-30%20at%206.17.45%20PM.png
我包括jQuery和原型JS文件。
<script src="/javascripts/jquery.js?1303396383" type="text/javascript"></script>
<script src="/javascripts/rails.js?1303562965" type="text/javascript"></script>
<script src="/javascripts/application.js?1303842064" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$j = jQuery.noConflict();
</script>
<script src="/javascripts/prototype.js?1303686720" type="text/javascript"></script>
<script src="/javascripts/jquery.purr.js?1302145859" type="text/javascript"></script>
<script src="/javascripts/best_in_place.js?1302150372" type="text/javascript"></script>
你能帮助我解决导致这个错误的原因吗?
答案 0 :(得分:4)
您正在将jQuery .noConflict()
方法分配给$j
,因此对于jQuery内容,您现在必须使用$j
而不是$
,例如$j(document).ready(...
答案 1 :(得分:0)
我假设最好的插件是针对jQuery的,所以如果我弄错的话,请原谅其余部分。除非你在你的应用程序中编写了大量依赖于Prototype的JS,否则我可能会放弃它而支持jQuery。这是pretty easy进行转换。
即使可以使用正确的命名空间,也不值得。两者之间存在大量重叠,并且会为代码增加额外的重量。一个JavaScript框架对于一个页面应该足够了! :)