Mootools使用“扩展”方法扩展“Function”类,使jQuery无法使用

时间:2010-11-09 05:13:29

标签: javascript jquery oop mootools mozilla

Mootools扩展了“Function”类,并在其中添加了一个名为“extend”的新方法。现在jQuery尝试使用jQuery.prototype.extend添加“extend”函数。但是,因为“extend”已经是jQuery对象的一部分(因为jQuery是Function类的一个对象),所以jQuery.prototype.extend不起作用。 有没有人在同时使用Mootools和jQuery时遇到这种冲突?

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

2 个答案:

答案 0 :(得分:2)

我能想到的唯一方法就是这样做:

<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>

答案 1 :(得分:0)

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