Слайд-шоу JQuery и конфликт MooTools - PullRequest
0 голосов
/ 01 декабря 2010

У меня проблема с библиотекой motools, конфликтующей с моей библиотекой jQuery:

Вот код:

<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 вокруг jQuery.noConflict (); вот так:

<script type="text/javascript">
$.noConflict();
  jQuery(document).ready(function($) {
        $(window).load(function () {
                // start the slideshow
                $('.slideshow').blinds();
            })
});
</script>

Но скрипт, зависящий от mootools, не работает. Пожалуйста, помогите, так как я не очень знаком с jQuery / javascript.

Спасибо!

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

Когда вы вызываете 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>
0 голосов
/ 01 декабря 2010

Вы хотите jQuery.noConflict().

Но на самом деле вам это не нужно, потому что вы используете jQuery для своего псевдонима jQuery и передаете $ в качестве аргумента, который отображается наjQuery объект.

Пока весь ваш jQuery (и только jQuery) происходит внутри этого jQuery(document).ready(), вы можете использовать $ для jQuery и не беспокоиться о столкновениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...