Prototype / Mootools conflict question

前端 未结 2 1193
孤城傲影
孤城傲影 2021-01-03 03:57

So I have a page that uses both Prototype and Mootools AJAX scripts.

There is much more Mootools that Prototype, so I\'m wondering if Prototype has a function simila

相关标签:
2条回答
  • 2021-01-03 04:40

    The newest version of MooTools has a no conflict mode. Unfortunately, Prototype does not, which means that the $ will have to be bound to Prototype.

    To enable the Dollar Safe Mode, upgrade your version of MooTools and make sure you include MooTools after Prototype.

    <script type="text/javascript" src="prototype.js" />
    <script type="text/javascript" src="mootools.js" />
    

    After doing so, $ will be bound to Prototype. In MooTools scripts, replace all $ references to document.id.

    // Before
    var X = new Class({
        initialize: function(element){
            this.element = $(element);
        }
    });
    
    
    // After
    var X = new Class({
        initialize: function(element){
            this.element = document.id(element);
        }
    });
    

    or you can use a closure:

    (function(){
    
        var $ = document.id;
    
        this.X = new Class({
            initialize: function(element){
                this.element = $(element);
            }
        });
    
    })();
    

    More information about the Dollar Safe Mode is available in MooTools' blog:

    http://mootools.net/blog/2009/06/22/the-dollar-safe-mode/

    0 讨论(0)
  • 2021-01-03 04:40

    I have a really simple solution:

    <script src='mootools.js'></script>
    <script>$moo = $; delete ($);</script>
    <script src='prototype.js></script>
    
    
    
    <script>
    
    (function ($){
    
    
    //here you can use $ of moo tools
    
    })($moo);
    
    
    //here you can use $ of prototype
    
    
    </script>
    
    0 讨论(0)
提交回复
热议问题