Javascript Mootools扩展了;功能“;用一个“";扩展;方法使jQuery不可用
Mootools扩展了“Function”类,并在其中添加了一个名为“extend”的新方法。现在,jQuery尝试使用jQuery.prototype.extend添加“extend”函数。但是,由于“extend”已经是jQuery对象的一部分(因为jQuery是函数类的对象),所以jQuery.prototype.extend不起作用。 有人在同时使用Mootools和jQuery时遇到过这种冲突吗Javascript Mootools扩展了;功能“;用一个“";扩展;方法使jQuery不可用,javascript,jquery,oop,mootools,mozilla,Javascript,Jquery,Oop,Mootools,Mozilla,Mootools扩展了“Function”类,并在其中添加了一个名为“extend”的新方法。现在,jQuery尝试使用jQuery.prototype.extend添加“extend”函数。但是,由于“extend”已经是jQuery对象的一部分(因为jQuery是函数类的对象),所以jQuery.prototype.extend不起作用。 有人在同时使用Mootools和jQuery时遇到过这种冲突吗 更一般地说,如果扩展了“函数、数组或对象”之类的本机类,我们有办法恢复到原始定义吗?您尝试
更一般地说,如果扩展了“函数、数组或对象”之类的本机类,我们有办法恢复到原始定义吗?您尝试过jQery.noConflict吗 我能想到的唯一方法是:
<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>
//复制原始函数
var ext=Function.prototype.extend;
//移除它
删除Function.prototype.extend;
//复制jQuery版本
var jqext=jQuery.prototype.extend;
//移除它(为了理智)。
删除jQuery.prototype.extend;
//重新分配原始函数。
Function.prototype.extend=ext;
//删除jQuery扩展方法(现在是原来的Function.extend方法)
删除jQuery.prototype.extend;
//重新分配jQuery的原始扩展方法。
jQuery.prototype.extend=jqext;
是的,我有。noConflict有助于避免和“$”冲突。然而,这里并不是关于变量命名的。这是关于扩展基类的。解决方案很好。然而,我不明白为什么我们要删除jQuery.prototype.extend(为了理智起见),然后在重新分配function.prototype.extend之后再次删除。更改基类是否也会更改已继承的类?我删除了它,因为我不喜欢需要补偿如果Function.prototype.extend=ext代码>搞乱了它。我发现分配给空变量名不太可能需要调试。如果您在本地定义原型链,为什么您会关心它?如果它在该范围内看到jQuery.prototype.extend,它将/不应该转到Function.prototype.extend。。。他们似乎没有检查函数jQuery.fn的原型链实际上定义为等于jQuery.prototype