Jquery和Prototype Conflict

时间:2010-05-29 16:57:25

标签: javascript jquery prototypejs conflict

我在同一页面上运行两个javascript文件时遇到问题。我使用了JQuery.noConflict()(http://api.jquery.com/jQuery.noConflict/),但没有运气。

        <script src="http://www.google.com/jsapi"></script>
        <script>
            google.load("prototype", "1.6.0.3",{uncompressed:false});
            google.load("scriptaculous", "1.8.1",{uncompressed:false});
        </script>
        <script src="js/jquery.tools.min.js"></script>
        <script type="text/javascript">
          $jQuery.noConflict();
          jQuery(document).ready(function($) {
                $("#download_now").tooltip({ effect: 'slide'});
          });

            function show_text() {
            new Ajax.Request('./new.php', {
                             method: 'post',
                             parameters: { userid: $('userid').value },
                             onSuccess: function(r) { $('update').update(r.responseText) }
                                 });    
            }

            document.observe("dom:loaded", function() {

            $('loading').hide();

            Ajax.Responders.register({
              onCreate: function() {
                new Effect.Opacity('loading',{ from: 1.0, to: 0.3, duration: 0.7 });        
                new Effect.toggle('loading', 'appear');


              },
              onComplete: function() {
                new Effect.Opacity('loading', { from: 0.3, to: 1, duration: 0.7 });
                new Effect.toggle('loading', 'appear');
              }
            });
            });         
            </script>

3 个答案:

答案 0 :(得分:6)

我认为代码中的$jQuery.noConflict();是拼写错误。使用jQuery.noConflict();

解决问题的另一种方法是用jQuery替换所有$变量(假设$引用了jQuery对象)。

答案 1 :(得分:4)

阅读本文:

  

或者只是像这样搜索stackoverflow:

https://stackoverflow.com/search?q=jquery+conflict-prototype

答案 2 :(得分:2)

首先加载jQuery,然后调用此代码:

var $jq = jQuery.noConflict();
//Now you can use $jq in place of $ for jQuery;
$jq(".myButton").css("border","2px");

加载其他库。