TypeError: $().magnificPopup не является функцией

Я использую версию для разработчиков Chrome. Библиотека не загружается, и я не могу понять, почему. Об ошибке сообщается в консоли Chrome. Это мой код:

<ul><li><a class="mediaimage-link" href="~/img/HP/mediakit/The-CorPath-Vascular-Robotic-System_HR.jpg"><img src="~/img/HP/The-CorPath-Vascular Robotic-System-187.jpg" alt="">
</a></li>
<li><a href="https://www.youtube.com/watch?v=TnQsToiKKgw?rel=0&amp;showinfo=0" class="popup-youtube"> <img src="~/img/HP/Iyer-Video-187.jpg" alt=""></a>
         </li>
</ul>

$(document).ready(function() {
  //Media Image Popup
  $('.mediaimage-link').magnificPopup({type:'image'});
  //Video Iframe Popup
    $('.popup-youtube').magnificPopup({
          disableOn: 700,
          type: 'iframe',
          mainClass: 'mfp-fade',
          removalDelay: 160,
          preloader: false,
          fixedContentPos: false
        });
});`


person Hitesh Rawat    schedule 24.10.2016    source источник
comment
добавить jquery-файл   -  person Mahi    schedule 24.10.2016
comment
jsfiddle.net/t5f5e5zw/52   -  person Mahi    schedule 24.10.2016


Ответы (3)


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

person ajith    schedule 10.02.2017

$(document).ready(function ($) {
    $('.test-popup-link').magnificPopup({
    type: 'image',
    gallery: {
            enabled: true,
            navigateByImgClick: true,
            preload: [0,1] // Will preload 0 - before current, and 1 after the current image
          }
    // other options
  });
  });

просто передайте $ в $(document).ready(function ($) и он начнет работать

person Muhammad Aßdüllah    schedule 21.03.2019
comment
Можете ли вы объяснить мне, почему это работает? Мне никогда раньше не приходилось передавать $ в $(function() { }). Честно говоря, меня очень раздражает, что по какой-то причине это требуется с этой библиотекой, хотя раньше этого не было. - person Rick Kukiela; 13.10.2020

Сегодня у меня точно такая же проблема: magnificPopup работал нормально несколько недель. И вдруг я получаю то же самое magnificPopup не является ошибкой функции.

Добавление $ в строку (document).ready(function ($) { решило проблему для меня, но я все еще задаюсь вопросом, почему (точно так же, как Рик выше).

Даже документация на https://dimsemenov.com/plugins/magnific-popup/documentation.html по-прежнему говорит, что вызов выглядит следующим образом:

$(document).ready(function() {
  $('.image-link').magnificPopup({type:'image'});
});
person MiK    schedule 16.05.2021