Javascript 如何让这两个jQuery脚本协同工作?
一个是MP3的音频播放器,另一个是我想在其中显示YouTube视频的灯箱 这是头像:Javascript 如何让这两个jQuery脚本协同工作?,javascript,jquery,audio,lightbox,Javascript,Jquery,Audio,Lightbox,一个是MP3的音频播放器,另一个是我想在其中显示YouTube视频的灯箱 这是头像: <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="v
<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>
$(函数(){
$(“#ubaPlayer”).ubaPlayer({
编解码器:[{name:“MP3”,编解码器:'audio/mpeg;'}]
});
});
我注意到,当我删除“libs/jquery/jquery.js”时,lightbox可以工作,但随后我的音频播放器停止工作
对于Javascript/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>
jQuery.noConflict();
jQuery(function(){
jQuery("#ubaPlayer").ubaPlayer({
codecs: [{name:"MP3", codec: 'audio/mpeg;'}]
});
});
</script>
jQuery.noConflict();
jQuery(函数(){
jQuery(“#ubaPlayer”).ubaPlayer({
编解码器:[{name:“MP3”,编解码器:'audio/mpeg;'}]
});
});
MooTools和jQuery都使用$
变量,这意味着不能同时使用它们。2种解决方案:
搜索这两个特性的jQuery/MooTools实现,我相信您会找到它们
用于让MooTools使用$
变量
使用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)
MooTools和jQuery都使用$
变量,这意味着不能同时使用它们。2种解决方案:
搜索这两个特性的jQuery/MooTools实现,我相信您会找到它们
用于让MooTools使用$
变量
使用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)
您可以将jQuery代码隔离在自动执行函数中,该函数将jQuery对象作为参数传递。因此,$表示在jQuery范围内,但在jQuery范围外可以是其他内容
(function ($) {
// your jQuery code here
}(jQuery));
通常还传递对象窗口以避免解析全局范围,并接收窗口和未定义窗口。由于您只传递了2个参数,第3个参数必须是未定义的,这提高了代码的可压缩性并使其更加稳定(不幸的是,未定义的参数可能会被重新定义)
您可以将jQuery代码隔离在自动执行函数中,该函数将jQuery对象作为参数传递。因此,$表示在jQuery范围内,但在jQuery范围外可以是其他内容
(function ($) {
// your jQuery code here
}(jQuery));
通常还传递对象窗口以避免解析全局范围,并接收窗口和未定义窗口。由于您只传递了2个参数,第3个参数必须是未定义的,这提高了代码的可压缩性并使其更加稳定(不幸的是,未定义的参数可能会被重新定义)
您的页面中存在冲突。尝试用jQuery替换$,并将jQuery.noConflict()放在前面。我应该将jQuery.noConflict()放在哪里?页面中存在冲突。试着用jQuery替换$,并将jQuery.noConflict()放在前面我应该把jQuery.noConflict()放在哪里?你能简单一点解释数字3吗?“使用jQuery变量而不是$”是什么意思?@user2150204我建议您使用其他两种解决方案之一,但答案是:jQuery正式保存在jQuery
变量中,但它在$
变量中有一个简单的捷径。如果$
变量更改为MooTools,您仍然可以使用jQuery
变量(因为两个变量都有jQuery框架的副本)。因此,如果我使用数字2,我在哪里输入jQuery.noConflict?@user2150204您实际阅读了我链接到的副本上给出的答案吗??而且,1确实是最好的一个,只要找到jQuery实现,就有很多插件。加载2个库对于2个特性来说太大了。现在,第2个修复了这个问题,但我真的不明白如何合并这两个库。它们本质上是一样的吗?你能简单地解释一下3号吗?“使用jQuery变量而不是$”是什么意思?@user2150204我建议您使用其他两种解决方案之一,但答案是:jQuery正式保存在jQuery
变量中,但它在$
变量中有一个简单的捷径。如果$
变量更改为MooTools,您仍然可以使用jQuery
变量(因为两个变量都有jQuery框架的副本)。因此,如果我使用数字2,我在哪里输入jQuery.noConflict?@user2150204您实际阅读了我链接到的副本上给出的答案吗??而且,1确实是最好的一个,只要找到jQuery实现,就有很多插件。加载2个库对于2个特性来说太大了。现在,第2个修复了这个问题,但我真的不明白如何合并这两个库。它们本质上是一样的吗?