当我对jQuery和Rails'javascript_include_tag
使用:defaults
时,后者似乎会覆盖第一个。
例如,当我按此顺序放置元素时:
<%= javascript_include_tag "jquery-1.4.min.js" %>
<%= javascript_include_tag :defaults %>
...我可以使用Rails执行AJAX更新但不能对jQuery执行任何操作。
当我颠倒javascript_include_tag
的顺序时,我可以访问jQuery但无法使用Rails运行AJAX请求。
我更喜欢做我的AJAX Rails(因为它需要更少的代码),但我也希望利用其他jQuery功能。知道该做什么或冲突在哪里?
Rails 2.3.5, jQuery 1.4
答案 0 :(得分:2)
这里有两个简单的解决方案。使用jrails插件。它将引导您完成您需要做的事情。
或者在jQuery代码中使用jQuery代替$。
例如:
$('li').fadeOut();
// should be
jQuery('li').fadeOut();
他们会做同样的事情,但Rails使用Prototype,它也映射$,因此与jQuery冲突。
答案 1 :(得分:0)
您可以尝试使用$ j代替$ jQuery。
<script>
var $j = jQuery.noConflict();
</script>
答案 2 :(得分:0)
请记住先添加默认值然后再添加jquery。冲突发生在prototype.js文件和jquery-1.4.2.min文件
之间<%= javascript_include_tag :defaults %>
<%= javascript_include_tag 'jquery-1.4.2.min' %>
<script>var $j = jQuery.noConflict();</script>
使用$ j代替$ like。
$j(document).ready(function() {
.............
});