Mootools расширяет класс «Function» с помощью метода «extended», что делает jQuery непригодным для использования - PullRequest
2 голосов
/ 09 ноября 2010

Mootools расширяет класс «Function» и добавляет в него новый метод «extends». Теперь jQuery пытается добавить функцию «extension», используя jQuery.prototype.extend. Однако, так как "extension" уже является частью объекта jQuery (поскольку jQuery является объектом класса Function), jQuery.prototype.extend не работает. Кто-нибудь сталкивался с этим конфликтом при одновременном использовании Mootools и jQuery?

В более общем смысле, если родной класс, такой как «Функция, массив или объект», расширен, есть ли у нас способ вернуться к исходным определениям?

Ответы [ 2 ]

2 голосов
/ 09 ноября 2010

Я могу думать только так:

<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>
0 голосов
/ 09 ноября 2010

Вы пробовали jQery.noConflict?http://api.jquery.com/jQuery.noConflict/

...