Как конвертировать jquery в noconflict? - PullRequest
1 голос
/ 10 января 2020

У меня есть проблема на сайте Wordpress, где тема имеет большой init.js файл, который, кажется, вызывает конфликты с некоторыми плагинами.

Отказ от ответственности, я полный нуб, но я думаю, что мне нужно было бы преобразовать приведенный ниже кусок кода в режим noconflict, но некоторые вещи, которые я пробовал, не работают ,

jQuery(document).ready(function(){

    $ = jQuery; 

Возможно ли преобразовать этот код в noconflict?

Ответы [ 3 ]

2 голосов
/ 10 января 2020

Вы можете использовать IIFE , чтобы сделать это:

(function ($) {
    console.log(typeof $);
    
    $(document).ready(function () {
        console.log($('body')[0]);
    });
})(typeof $ === 'function' ? $ : jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Если вы используете веб-пакет, вам может понадобиться сначала проверить глобальный объект:

(function (global, factory) {
    factory(typeof global.$ === 'function' ? global.$ : global.jQuery);
})(typeof window === 'object' ? window : this, function ($) {
    console.log(typeof $);

    $(document).ready(function () {
        console.log($('body')[0]);
    });  
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
1 голос
/ 10 января 2020

Вы также можете очень легко создать свой собственный ярлык. Метод noConflict () возвращает ссылку на jQuery, которую можно сохранить в переменной для дальнейшего использования.

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
var jq = $.noConflict();
jq(document).ready(function(){
  jq("button").click(function(){
    jq("p").text("jQuery is still working!");
  });
});
</script>
</head>
<body>

<p>This is a paragraph.</p>
<button>Test jQuery</button>

</body>
</html>

Как описано в W3schools.com

0 голосов
/ 10 января 2020

Вы добавили jQuery.noConflict() после завершения функции и затем запустите свою логику c. Пример:

jQuery (документ) .ready (function () {

$ = jQuery;
$.noConflict();

// Ваша логика c

});

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