2011-11-23 82 views
0

我無法使noConflict()方法正常工作。我一直在網上搜索幾個小時,似乎無法得到一個堅實的答案。下面是我在我的頭......如何正確實現jQuery noConflict()方法?

<script type="text/javascript" src="js/mootools.js"></script> 
<script type="text/javascript" src="js/slimbox.js"></script> 

<script type="text/javascript" src="js/jquery.js"></script><!-- jQuery script --> 
<script type="text/javascript" src="js/page_scroll.js"></script><!-- JavaScript --> 
<script src="js/jquery.easing.1.3.js" type="text/javascript"></script><!-- jQuery easing plug-in --> 

<script type="text/javascript"> 
    var $j = jQuery.noConflict(); 

    // Use jQuery via $j(...) 
    $j(document).ready(function(){ 
     $j("div").hide(); 
    }); 

    // Use Mootools with $(...), etc. 
    $('someid').hide(); 
</script> 

有沒有其他的jQuery或JavaScript我的HTML中(只是我有什麼外部),所以「把任何使用$變量在noConlict法」不一個選項。

基本上我想要做的是有slimbox和easing頁面滾動(爲我的導航)一起工作。當另一個被移除時,問題當然是有效的,反之亦然。另外,當我使用noConflict()方法時,我使slimbox工作而不是pagescroll,但是當我刪除noConflict()方法時,我得到pagescroll工作而不是slimbox。因此,noConflict正在做的事情,我只是不知道那是什麼或如何去做。

如果有人能幫助我,我會很感激。謝謝。

+0

誰編輯的問題,出了問題找到可靠的結果? jquery沒有問題,mootools代碼無效。當然,我對mooTools一無所知,但是$(id).setStyle('display','none');而不是hide()工作得很好... – Sinetheta

+0

@Purmou我認爲你在編輯中有點過分...腳本標記對於這個問題是重要的。這個問題圍繞着使用綁定到'$'的多個框架來加載插件。其中一個插件是做錯了什麼......現在這個問題沒有任何意義。 –

+1

爲什麼在裝載mo load時加載較少。也許加載原型,YUI和Dojo。 – Raynos

回答

0

那麼你說這不起作用,當你聲明$ j?您可以定義自己的備用名稱(例如,jq,$ J,awesomeQuery - 任何您想要的)。嘗試調用它的東西W/O的$

0

包裝在一個匿名函數:

(function($){ 
    $(document).ready(function() { 
     // function here... 
    }); 
})(jQuery); 

看到確切的代碼可能會有幫助。

使用其他JS庫,充分利用$別名時
1

, 我以

$.noConflict(); 

jQuery(document).ready(function($) { 

    // your jQuery code here i.e. 

    // jQuery('some-selector-expression').somefunction(); 

}); 

// prototype or mootools code that uses the $ alias works fine here