Как правильно реализовать метод jQuery noConflict ()? - PullRequest
0 голосов
/ 23 ноября 2011

Я не могу заставить метод noConflict() работать правильно. Я искал в Интернете часами и не могу найти надежного ответа. Вот что у меня в шапке ...

<script type="text/javascript" src="js/mootools.js"></script>
<script type="text/javascript" src="js/slimbox.js"></script>

<script type="text/javascript" src="js/jquery.js"></script><!-- jQuery script -->
<script type="text/javascript" src="js/page_scroll.js"></script><!-- JavaScript -->
<script src="js/jquery.easing.1.3.js" type="text/javascript"></script><!-- jQuery easing plug-in -->

<script type="text/javascript">
    var $j = jQuery.noConflict();

    // Use jQuery via $j(...)
    $j(document).ready(function(){
        $j("div").hide();
    });

    // Use Mootools with $(...), etc.
    $('someid').hide();
</script>

В моем HTML нет никакого другого jQuery или JavaScript (только то, что у меня есть снаружи), поэтому «размещение всего, что использует переменную $ в методе noConlict», не вариант.

По сути, я пытаюсь создать слимбокс и упростить прокрутку страниц (для моей навигации) для совместной работы. Проблема, конечно, в том, что один работает, когда другой удаляется, и наоборот. Кроме того, когда я использую метод noConflict(), я получаю слимбокс для работы, а не прокрутки страниц, но когда я удаляю метод noConflict(), я получаю PageSroll для работы, а не слимбокс. Итак, в настоящее время noConflict что-то делает, я просто не знаю, что это такое или как это сделать.

Если кто-нибудь может мне помочь, я буду признателен. Благодарю.

Ответы [ 3 ]

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

при использовании других js-библиотек, использующих псевдоним $, Я нашел надежные результаты с помощью

$.noConflict();

jQuery(document).ready(function($) {

  // your jQuery code here i.e. 

  // jQuery('some-selector-expression').somefunction();

});

// prototype or mootools code that uses the $ alias works fine here
0 голосов
/ 23 ноября 2011

Оберните это в анонимную функцию:

(function($){
    $(document).ready(function() {
        // function here...
    });
})(jQuery);

Просмотр точного кода может помочь.

0 голосов
/ 23 ноября 2011

Так вы говорите, что это не работает, когда вы объявляете $ j? Вы можете определить свои собственные альтернативные имена (например, jq, $ J, awesomeQuery - все, что вы хотите). Попробуйте назвать это как-то без $

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