Mootools ломают функциональность jQuery - PullRequest
0 голосов
/ 23 февраля 2012

Возникла проблема с Mootools, нарушившая мои скрипты слайдшоу функциональностью jQuery.Не может точно определить, что происходит, но, в частности, в Firefox он разрушает функциональность и делает мой браузер не отвечающим.Я использовал jQuery.noConflict (), где это уместно, но не играли в кости.Firebug не показывает никаких ошибок, и когда скрипт MooTools отключен, все в порядке.Кроме того, он кажется менее проблематичным в других браузерах, но все же случается нечетно в Safari, Chrome и т. Д. В большинстве случаев он работает нормально (очень удачно).MooTools, но сценарий загрузки моего плагина находится в нижнем колонтитуле после загрузки MooTools.На самом деле не могу обойти это, так как с Wordpress это единственный способ заставить скрипты загружаться только на страницах, на которых используются слайд-шоу.

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Кажется, проблема в конфликте с событием load. Плагин Riva Slider вызывает load на объекте, но вместо события jQuery load запускается mootools load. По какой-то причине это заставляет mootools получать индекс вашего сайта через AJAX снова и снова, что приводит к зависанию FF. Я бы попытался загрузить jQuery перед mootools или просто сбросить один из них. Смешивать фреймворки действительно не очень хорошая идея.

Stack Trace

РЕДАКТИРОВАТЬ: Кроме того, вы говорите, что вы загружаете JQuery до MooTools, но вы этого не делаете. mootools загружается в <head>, а jQuery не загружается до нижней части страницы, прямо перед плагином.

0 голосов
/ 23 февраля 2012

Используйте jquery перед Mootools, вот пример сценария.

<script type="text/javascript" src="jquery-1.3.js"></script>
<script type="text/javascript">
    //no conflict jquery
    jQuery.noConflict();
    //jquery stuff
    (function($) {
        $('p').css('color','#ff0000');
    })(jQuery);
</script>
<script type="text/javascript" src="moo1.2.js"></script>
<script type="text/javascript">
    //moo stuff
    window.addEvent('domready',function() {
        $$('p').setStyle('border','1px solid #fc0');
    });
</script>

<p>This is a paragraph.</p>

...