代码之家  ›  专栏  ›  技术社区  ›  Sharad

Mootools使用“extend”方法扩展“Function”类,使jQuery不可用

  •  2
  • Sharad  · 技术社区  · 14 年前

    Mootools扩展了“Function”类,并在其中添加了一个名为“extend”的新方法。现在jQuery尝试使用jQuery.prototype.extend添加“extend”函数。但是,由于“extend”已经是jQuery对象的一部分(因为jQuery是函数类的一个对象),因此jQuery.prototype.extend不起作用。

    更一般地说,如果像“函数、数组或对象”这样的本机类被扩展,我们是否有办法恢复到原来的定义?

    2 回复  |  直到 14 年前
        1
  •  2
  •   cwallenpoole    14 年前

    我唯一能想到的办法是:

    <script type="text/javascript">
        // copy the original function
        var ext = Function.prototype.extend;
        // remove it
        delete Function.prototype.extend;
    </script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
    
    <script type="text/javascript">
        // Copy the jQuery version
        var jqext = jQuery.prototype.extend;
        // remove it (for sanity).
        delete jQuery.prototype.extend;
    
        // reassign the original function.
        Function.prototype.extend = ext;
        // remove the jQuery extend method (now the original Function.extend method)
        delete jQuery.prototype.extend;
        // reassign jQuery's original extend method.
        jQuery.prototype.extend = jqext;
    </script>
    
        2
  •  0
  •   Mike Ruhlin    14 年前

    你试过jQery.noConflict吗? http://api.jquery.com/jQuery.noConflict/