2013-03-08 125 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)); 
相关问题