Jquery Mootools 冲突
可能的重复:
jQuery 和 MooTools 冲突
我在这里遇到了一些麻烦,我正在加载 jQuery,如果它尚未加载以运行我的脚本。我的脚本被插入到其他人网站的正文标记中的某个位置。 我的问题是,jquery 仅通过加载它(jquery)就与 mootools 发生冲突。
这是我的脚本:
var attemptCount=0;
if(typeof jQuery=='undefined') {
var script=document.createElement('script');
script.type='text/javascript';
script.src='https://ajax.googleapis.com/ajax/.../1.6.2/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(script);
}
function init(){
if(arguments.callee.done) return;
if(typeof jQuery!='undefined'){
jQuery.noConflict();
arguments.callee.done=true;
// do some jquery stuff i.e. jQuery('...').etc...
}
}
function waitForJQuery(){
if(typeof jQuery!='undefined'){
init();
return;
}
if(attemptCount<100){
setTimeout(waitForJQuery,100);
}
return;
}
if(document.addEventListener){
document.addEventListener("DOMContentLoaded",init,false);
}
else if(document.attachEvent){
waitForJQuery();
}
window.onload=init;
任何帮助将不胜感激。
Possible Duplicate:
jQuery and MooTools Conflict
I'm running into some trouble here, I'm loading jQuery if it hasn't already been loaded in order to run my script. My script is inserted somewhere in the body tag on someone else's site. My problem is that jquery conflicts with mootools just by loading it (jquery).
Here is my script :
var attemptCount=0;
if(typeof jQuery=='undefined') {
var script=document.createElement('script');
script.type='text/javascript';
script.src='https://ajax.googleapis.com/ajax/.../1.6.2/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(script);
}
function init(){
if(arguments.callee.done) return;
if(typeof jQuery!='undefined'){
jQuery.noConflict();
arguments.callee.done=true;
// do some jquery stuff i.e. jQuery('...').etc...
}
}
function waitForJQuery(){
if(typeof jQuery!='undefined'){
init();
return;
}
if(attemptCount<100){
setTimeout(waitForJQuery,100);
}
return;
}
if(document.addEventListener){
document.addEventListener("DOMContentLoaded",init,false);
}
else if(document.attachEvent){
waitForJQuery();
}
window.onload=init;
Any help would be much appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我相信 jQuery 需要在 MooTools 之前初始化,因为 $ 是一个别名,并且 jQuery 能够解除绑定,如果考虑到您的情况,这不太难的话,可能值得一试。
来源:http://davidwalsh.name/jquery-mootools
I believe jQuery needs to be initialised prior to MooTools as the $ is an alias and jQuery has the ability to unbind this, probably worth a try if it isn't too difficult to do given your circumstance.
Source: http://davidwalsh.name/jquery-mootools
您使用的 mootools 版本是什么? Mootools 将“自动交出”美元。
您是否有使用 $ 编写的 jQuery 和 mootools 代码?
如果是这样,您将需要至少在一种语言中手动查找美元符号的每个实例,并替换为以下内容:
对于 jQuery $() 变为 jQuery()
对于 Mootools $() 变为 document.id()
// 仅供参考,这是自 1.3 以来 moo Core 及更多版本中的首选编码模式
希望这会有所帮助!
PS如果你完成这一步就不会发生冲突:)
What mootools version are you using? Mootools will "automatically surrender" the $.
Do you have code for both jQuery and mootools written that is using the $?
If so you will need to manually find evey instance of the dollar sign in at least one of the languages and replace with the following
For jQuery $() becomes jQuery()
For Mootools $() becomes document.id()
// FYI this is the preferred coding pattern in moo Core and More since 1.3
Hope this helps!
PS if you complete this step there will be no conflicts :)
您可以尝试以下方法:
here a approach you can try: