prototype and jQuery peaceful co-existence?

前端 未结 4 959
清酒与你
清酒与你 2021-02-08 07:22

I know very little about JavaScript but despite this I\'m trying to cobble something together on my wordpress blog. It\'s not working, and I don\'t know how to resolve it, and h

4条回答
  •  Happy的楠姐
    2021-02-08 08:11

    There is a nasty trick many libraries do that I've taken a distinct liking to, and it looks like prototype is one of these.

    Mootools does this, If I am right, and it involves overloading many of the prototypes on the basic classes, monkey patching them.

    And likewise, I similarly encountered strange behaviour when mootools and jQuery were present, usually jQuery dying because it was calling some object method which had been somehow overloaded/monkey patched by Mootools.

    Also, mysteriously, taking mootools out of the script usage list, resulted in everything running much faster, which I concluded was due to less object pollution.

    Now I could be wrong, but I concluded from my experience such libraries just simply don't like to co-exist with each other, and seeing how mootools code seemed to me to degrade speed at which normal things were done, I sucked up and ported all mootools based code to jQuery ( A time consuming deal I assure you ), and the result, was code that was fast and didn't have weird errors that were unexplainable.

    I recommend you consider migration as at least One of your options.

    One More thing, when writing:

    I tend to use this syntax with all my jQuery driven code, for a bit of safe encapsulation in the event somebody breaks '$' somehow.

    Runtime Code This waits for document.ready before executing:

     jQuery(function($){ 
          code_with_$_here; 
     }); 
    

    jQuery Plugins

    (function($){ 
        code_with_$_here; 
    })(jQuery); 
    

    Using these will make it easier for people using any jQuery you happen to write to be able to use it without much of a conflict issue.

    This will basically leave them to make sure their code isn't doing anything really magical.

提交回复
热议问题