一个是Mp3s的音频播放器,另一个是Lightbox,我正试图在其中显示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="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,我不是很熟练,所以答案可能很明显。
更新
这解决了问题!
<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 :(得分:5)
MooTools和jQuery都使用$
变量,这意味着你不能同时使用它们。 2解决方案:
jQuery.noConflict
让MooTools使用$
变量。使用jQuery
变量代替$
,并在 jQuery之后添加MooTools 。如果要使用jQuery的$
快捷方式,请将jQuery代码包装在domready事件中,并将$
作为回调参数:
jQuery(function($) {
// ... jQuery code ($ has a copy of `jQuery` now)
});
// ... MooTools code ($ has a reference to the `MooTools.id` method now)
答案 1 :(得分:1)
您可以在自动执行函数中隔离您的jQuery代码,并将jQuery对象作为参数传递。所以$表示范围内的jQuery,但在外面它可能是其他东西。
(function ($) {
// your jQuery code here
}(jQuery));
通常也传递对象窗口以避免解析全局范围,并接收窗口和未定义。由于您只传递了2个参数,因此第3个必须是未定义的,这样可以提高代码的可压缩性并使其更稳定(遗憾的是,未定义可以重新定义)
(function ($, window, undefined) {
// your jQuery code here
}(jQuery, window));