我遇到了与我的jQuery库冲突的motools库的问题:
以下是代码:
<script language="Javascript" type="text/javascript" src="revamp/js/jquery-1.4.2.js"></script>
<script language="Javascript" type="text/javascript" src="revamp/js/jquery.blinds-0.9.js"></script>
<script type="text/javascript" src="js/mootools-1.2-core.js"></script>
<script type="text/javascript" src="js/_class.viewer.js"></script>
<script type="text/javascript">//<![CDATA[
window.addEvent('domready',function(){
var V5 = new viewer($('boxCont').getChildren(),{
mode: 'alpha',
fxOptions: {duration:500},
interval: 6000
});
V5.play(true);
});
</script>
<script type="text/javascript">
$(window).load(function () {
// start the slideshow
$('.slideshow').blinds();
})
</script>
如果我禁用mootools,幻灯片工作(反之亦然,使用jQuery)。我试着围绕jQuery.noConflict()包装jQuery;像这样:
<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) {
$(window).load(function () {
// start the slideshow
$('.slideshow').blinds();
})
});
</script>
但是仍然依赖于mootools的脚本不起作用。请帮助,因为我不熟悉jQuery / javascript。
谢谢!
答案 0 :(得分:1)
一旦调用jQuery.noConflict(),就可以通过jQuery而不是$来引用jQuery。然后,MooTools或其他JavaScript库可以使用$。
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function() {
jQuery(window).load(function () {
// start the slideshow
jQuery('.slideshow').blinds();
})
});
</script>
如果您想给jQuery另一个名字,可以执行以下操作:
<script type="text/javascript">
var jq = jQuery.noConflict();
jq(document).ready(function() {
jq(window).load(function () {
// start the slideshow
jq('.slideshow').blinds();
})
});
</script>
答案 1 :(得分:0)
您想要jQuery.noConflict()
。
但是你真的不需要,因为你正在使用jQuery
作为你的jQuery别名,并且你传递$
作为映射到jQuery
对象的参数。
只要你的所有jQuery(和jQuery)都在jQuery(document).ready()
内发生,那么你就可以使用$
来获取jQuery而不用担心冲突。