2011-12-15 11 views
1

可能性の重複:
jQuery and MooTools ConflictjQueryのMooToolsは競合

私はそれが既に実行するためにロードされていない場合、私はjQueryのをロードしています、ここでいくつかのトラブルに実行していますよ私のスクリプト。私のスクリプトは、他人のサイトのbodyタグのどこかに挿入されます。 私の問題は、jQueryがmootoolsとちょうど(jquery)をロードすることで衝突することです。すべてのヘルプははるかに高く評価されるだろう

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; 

は、ここに私のスクリプトです。ここ

+1

注:あなたはscript.onload = INIT '使用することができます;'とは 'のaddEventListener()'と 'のsetTimeoutを(使用する必要はありません) '。 – kubetz

+0

ありがとう、私はそれを試してみます。 – Sparkup

答えて

-1

あなたが試すことができますアプローチ:

// Add jQuery 
var GM_JQ = document.createElement('script'); 
GM_JQ.src = "http://jquery.com/src/jquery-latest.js"; 
GM_JQ.type = "text/javascript"; 
document.getElementsByTagName('head')[0].appendChild(GM_JQ); 

// Check if jQuery's loaded. 

function GM_wait() { 
    if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait,100); } 
else { $ = unsafeWindow.jQuery; letsJQuery(); } 
} 

GM_wait(); 

// All your GM code must be inside this function. 
function letsJQuery() { 

alert("cheers"); 

} 
+0

これはGreaseMonkey固有のようですが、OPが尋ねたものではありません... – AKX

0

私はjQueryの$は別名であり、それはにISN場合はjQueryのは、おそらくこれをアンバインドする機能、試してみる価値を持っているような従来MooToolsのに初期化する必要が信じていますあなたの状況を考えれば、やりにくいです。

<p>jQuery sets this paragraph's color to red but MooTools sets the border color.</p> 
    <script type="text/javascript" src="jquery-1.x.x.js"></script> 
    <script type="text/javascript"> 
    //no conflict jquery 
    jQuery.noConflict(); 
    //jquery stuff 
    (function($) { 
     $('p').css('color','#ff0000'); 
    })(jQuery); 
    </script> 
    <script type="text/javascript" src="moo1.x.js"></script> 
    <script type="text/javascript"> 
    //moo stuff 
    window.addEvent('domready',function() { 
     $$('p').setStyle('border','1px solid #fc0'); 
    }); 
    </script> 

出典:あなたはhttp://davidwalsh.name/jquery-mootools

+0

このリンクはあなたに良い成果をもたらすかもしれません:http://stackoverflow.com/questions/2810399/jquery-and-mootools-conflict –

0

何MooToolsのバージョンを使用していますか? Mootoolsは$を自動的に "降伏"します。

jQueryとmootoolsの両方に、$を使用しているコードがありますか?

ので、手動MooToolsはの$のためのjQuery()

を言語のうちの少なくとも一方でドル記号のeveyインスタンスを見つけるとなります)(jQueryの$については、次の

と交換する必要がある場合()はdocument.id()になります //これはmoo Core and Moreの推奨コーディングパターンです。1.3

希望します。この手順を完了した場合

PSに競合:)は存在しません