2013-03-08 185 views
0

一個是一個的MP3音頻播放器,另一個是一個燈箱我想在顯示YouTube視頻我怎樣才能讓這兩個jQuery腳本一起工作?

這裏的頭:

<script type="text/javascript" src="videobox/js/mootools.js"></script> 
<script type="text/javascript" src="videobox/js/swfobject.js"></script> 
<script type="text/javascript" src="videobox/js/videobox.js"></script> 
<link rel="stylesheet" href="videobox/css/videobox.css" type="text/css" media="screen" /> 

<link rel="stylesheet" href="libs/css/styles.css" /> 
<script src="libs/jquery/jquery.js"></script> 
<script src="src/jquery.ubaplayer.js"></script> 
<script> 
    $(function(){ 
      $("#ubaPlayer").ubaPlayer({ 
      codecs: [{name:"MP3", codec: 'audio/mpeg;'}] 
      }); 
     }); 
</script> 

我注意到,燈箱工作時我刪除了「libs/jquery/jquery.js」,但隨後我的音頻播放器停止工作。

對於Javascript/JQuery,我不是很熟練,所以答案可能很明顯。

UPDATE:

這個固定的問題!

<script type="text/javascript" src="videobox/js/mootools.js"></script> 
<script type="text/javascript" src="videobox/js/swfobject.js"></script> 
<script type="text/javascript" src="videobox/js/videobox.js"></script> 
<link rel="stylesheet" href="videobox/css/videobox.css" type="text/css" media="screen" /> 

<link rel="stylesheet" href="libs/css/styles.css" /> 
<script src="libs/jquery/jquery.js"></script> 
<script src="src/jquery.ubaplayer.js"></script> 
<script> 
    jQuery.noConflict(); 
    jQuery(function(){ 
      jQuery("#ubaPlayer").ubaPlayer({ 
      codecs: [{name:"MP3", codec: 'audio/mpeg;'}] 
      }); 
     }); 
</script> 
+0

。在你的頁面的衝突。 http://stackoverflow.com/search?q=jquery+mootools – undefined 2013-03-08 22:41:19

+0

嘗試用jQuery替換$,並在 – Rongsir 2013-03-08 22:45:53

+0

之前放置jQuery.noConflict()我在哪裏放jQuery.noConflict()? – pianoman 2013-03-08 23:15:51

回答

5

兩個MooTools的和jQuery使用$變量,這意味着你不能使用他們。 2個解決方案:

  1. 搜索的兩種功能的jQuery/MooTools的實現,我敢肯定,你會發現這些。
  2. 使用jQuery.noConflict讓MooTools使用$變量。
  3. 使用jQuery變量而不是$,並在之後包含MooTools jQuery。如果你想使用$快捷的jQuery,與$包裹jQuery代碼在domready中的事件作爲回調的參數:

    jQuery(function($) { 
        // ... jQuery code ($ has a copy of `jQuery` now) 
    }); 
    // ... MooTools code ($ has a reference to the `MooTools.id` method now) 
    
+0

你能解釋一下3號更簡單嗎?你是什​​麼意思「使用jQuery變量而不是$?」 – pianoman 2013-03-08 23:09:47

+0

@ user2150204我建議您使用其他兩種解決方案之一,但答案是:jQuery已正式保存在'jQuery'變量中,但它在'$'變量中有一個簡單的捷徑。如果'$'變量改爲MooTools,你仍然可以使用'jQuery'變量(因爲這兩個變量都有jQuery框架的副本)。 – 2013-03-08 23:13:05

+0

因此,如果我使用數字2,我在哪裏輸入jQuery.noConflict? – pianoman 2013-03-08 23:22:19

1

您可以隔離autoexecuting功能通過內部jQuery代碼jQuery對象作爲參數。因此,$意味着範圍內的jQuery,但它外面可以是別的東西。

(function ($) { 

    // your jQuery code here 

}(jQuery)); 

爲了避免解析全局範圍,並且接收窗口和未定義,還通過對象窗口也很常見。因爲只通過2個參數,第三必須是不確定的,這提高了代碼的壓縮,使更穩定(未定義可不幸的是重新定義)

(function ($, window, undefined) { 

    // your jQuery code here 

}(jQuery, window)); 
相關問題