jQuery Conflict, выпадающая функциональность боковой панели не работает [дубликат]

162
задан Craig London 7 April 2015 в 14:34
поделиться

15 ответов

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

Ваше решение обернуть его в function будет работать нормально, или вы можете загрузить jQuery другим способом (но это, вероятно, не очень хорошая идея в Wordpress).

Если вы должны использовать document.ready, вы можете фактически передать $ в функцию call:

jQuery(function ($) { ...
249
ответ дан Explosion Pills 27 August 2018 в 17:09
поделиться

замените знак $ на jQuery следующим образом:

jQuery(function(){
//your code here
});
1
ответ дан Abdelsalam Shahlol 27 August 2018 в 17:09
поделиться

Вы можете избежать конфликтов, подобных этому

var jq=jQuery.noConflict();
jq(document).ready(function(){  
  alert("Hi this will not conflict now");
  jq('selector').show();
});
16
ответ дан Ashwani Panwar 27 August 2018 в 17:09
поделиться

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

Если вы используете инкапсуляцию jQuery, она не должна Это дело. Пожалуйста, попробуйте, потому что я думаю, что это красивее и более очевидно, но если jQuery не определен, вы получите те же ошибки.

В конце ... jQuery в настоящее время не определен.

5
ответ дан Cayce K 27 August 2018 в 17:09
поделиться
var $=jQuery.noConflict();

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

Прислушаться к ответам Ашвани Панвара и Циссо: https://stackoverflow.com/a/29341144/3010027

10
ответ дан Community 27 August 2018 в 17:09
поделиться

Вы должны передать $ in function ()

<script>
jQuery(document).ready(function($){

// jQuery code is in here

});
</script>
8
ответ дан Jitendra Damor 27 August 2018 в 17:09
поделиться

Попробуйте следующее:

<script language="JavaScript" type="text/javascript" src="jquery/jquery.js"></script>
<script>
    jQuery.noConflict();
    (function ($) {
        function readyFn() {
            // Set your code here!!
        }

        $(document).ready(readyFn); 
    })(jQuery);

</script>
12
ответ дан Jose Carlos Ramos Carmenates 27 August 2018 в 17:09
поделиться

Вы сталкиваетесь с этой проблемой, когда имя вашей функции и одно из имен имен в файле одинаково. просто убедитесь, что все ваши имена имен в файле уникальны.

2
ответ дан Laxman Jaygonde 27 August 2018 в 17:09
поделиться

Это должно исправить:

jQuery(document).ready(function($){
  //you can now use $ as your jQuery object.
  var body = $( 'body' );
});

Проще говоря, WordPress запускает свои собственные скрипты, прежде чем вы сможете, и они освободят $ var, чтобы он не сталкивался с другими библиотеками. Это делает общий смысл, поскольку WordPress используется для всех видов веб-сайтов, приложений и, конечно, блогов.

Из их документации:

Библиотека jQuery, включенная в WordPress установлен в режим noConflict () (см. Wp-includes / js / jquery / jquery.js). Это необходимо для предотвращения проблем совместимости с другими библиотеками JavaScript, которые может связывать WordPress.

В режиме noConflict () глобальный $ shortcut для jQuery недоступен ...

123
ответ дан Matthew Blancarte 27 August 2018 в 17:09
поделиться
<script>
var jq=jQuery.noConflict();
(function ($) 
    {
    function nameoffunction()
    {
        // Set your code here!!
    }

    $(document).ready(readyFn); 
    })(jQuery);

теперь использовать jq вместо jQuery

2
ответ дан Panther 27 August 2018 в 17:09
поделиться

Что сработало для меня. Первая библиотека для импорта - это библиотека запросов, а затем вызов метода jQuery.noConflict ().

<head>
 <script type="text/javascript" src="jquery.min.js"/>
 <script>
  var jq = jQuery.noConflict();
  jq(document).ready(function(){
  //.... your code here
    });
 </script>
3
ответ дан PbxMan 27 August 2018 в 17:09
поделиться

Кроме того, я нашел хорошее решение для использования режима jQuery noConflict.

(function($){

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

  // or also you can write jquery code like this

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

})(jQuery);

Я нашел это решение здесь. https://thecodingstuff.com/how-to-properly-use-jquery-noconflict-mode-in-wordpress/

1
ответ дан Renish Khunt 27 August 2018 в 17:09
поделиться

Используйте

jQuery(document).

вместо

$(document).

или

Внутри функции $ указывает на jQuery, как вы ожидали бы

(function ($) {
   $(document).
}(jQuery));
2
ответ дан Sanjay 27 August 2018 в 17:09
поделиться
(function( $ ) {
  "use strict";

  $(function() {

    //Your code here

  });

}(jQuery));
3
ответ дан Sharif Mohammad Eunus 27 August 2018 в 17:09
поделиться

Это решение сработало для меня

;(function($){
    // your code
})(jQuery);

Перенесите свой код внутри замыкания и используйте $ вместо jQuery

Я нашел указанное решение в https://magento.stackexchange.com/questions/33348/uncaught-typeerror-undefined-is-not-a-function-when-using-a-jquery-plugin-in-ma

... после поиска слишком много

17
ответ дан Zanna 27 August 2018 в 17:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: