Ничто из того, что я пытался заставить Magnific Popup работать должным образом

Я потратил много времени, пытаясь заставить этот Magnific Popup работать локально на моем веб-сайте, и он продолжает связывать меня с отдельной страницей изображения вместо того, чтобы получить средство просмотра всплывающих окон, которое я хотел.

Кто-нибудь знает, где мои ошибки и как я могу заставить его работать?

Я новичок в jQuery, поэтому я не знаю, почему этот код не работает.

Редактировать: есть ли что-то, что мне нужно скачать, чтобы заставить его работать?

Все три исходных кода находятся в моей папке, и я проверил, находятся ли они по нужным ссылкам, и я все еще не получаю никаких всплывающих окон Magnific.

Вот что у меня есть в моем документе:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link href="website.css" rel="stylesheet" type="text/css">
<script src="my_jquery.js"></script>
<title> Name </title>



        <link href="magnific-popup.css" rel="stylesheet" type="text/css">
        <link href="singleimage.css" rel="stylesheet" type="text/css">







 </head>
  <body>

<div id="navigation">
    <div id="header_left"><span id="header_text1">Name</span> </div>

    <div id="header_right"> <span id="header_text2">
    <a href="#home">Link</a>
    <a href="#name">Link</a>
    <a href="#name">Link</a>
    <a href="#name">Link</a>
    <a href="#name">Link</a> 
     </span> </div>

</div>






<a name="graphicdesign">
<div class="bg-image2">

    <div class="test1">
        <div class="test2"> <h1>Page Title</h1>


<a class="image-popup-vertical-fit" href="cat_b.jpg" title="Caption. Can be aligned it to any side and contain any HTML.">
<img src="cat_s.jpg " width="75" height="75">
</a>
<a class="image-popup-fit-width" href="http://farm9.staticflickr.com/8379/8588290361_ecf8c27021_b.jpg" title="This image fits only horizontally.">
<img src="http://farm9.staticflickr.com/8379/8588290361_ecf8c27021_s.jpg" width="75" height="75">
</a>
<a class="image-popup-no-margins" href="http://farm4.staticflickr.com/3721/9207329484_ba28755ec4_o.jpg">
<img src="http://farm4.staticflickr.com/3721/9207329484_ba28755ec4_o.jpg" width="107" height="75">
</a>


    <script>
    $(document).ready(function() {
    $('.image-link').magnificPopup({type:'image'});
    });






    $(document).ready(function() {

$('.image-popup-vertical-fit').magnificPopup({
    type: 'image',
    closeOnContentClick: true,
    mainClass: 'mfp-img-mobile',
    image: {
        verticalFit: true
    }

});

$('.image-popup-fit-width').magnificPopup({
    type: 'image',
    closeOnContentClick: true,
    image: {
        verticalFit: false
    }
});

$('.image-popup-no-margins').magnificPopup({
    type: 'image',
    closeOnContentClick: true,
    closeBtnInside: false,
    fixedContentPos: true,
    mainClass: 'mfp-no-margins mfp-with-zoom', // class to remove default margin from left and right side
    image: {
        verticalFit: true
    },
    zoom: {
        enabled: true,
        duration: 300 // don't foget to change the duration also in CSS
    } }); });
    </script>



    <script src="jquery.magnific-popup.min.js"></script> 
    <script src="jquery.magnific-popup.js"></script>
    <!-- jQuery 1.7.2+ or Zepto.js 1.0+ -->



        </div>
    </div>
</div> </a>

Я получаю три ошибки из кода, который я вставил из Magnific Popup. Я никак не менял код, и все равно получил ошибки. Я не уверен, должен ли я его как-то изменить или нет. Я озадачен тем, что делать.

Uncaught ReferenceError: $ не определен index_01.html:73

Вот некоторые коды вокруг строки 75 на этой странице:

    <script>
    $(document).ready(function() {
    $('.image-link').magnificPopup({type:'image'});
    });

Uncaught TypeError: undefined не является функцией jquery.magnific-popup.min.js:4

    (function(e){var t,n,i,o,r,a,s,l="Close",c="BeforeClose",d="AfterClose",u="BeforeAppend",p=

Uncaught TypeError: undefined не является функцией jquery.magnific-popup.js:38

     _window = $(window),

person user3911868    schedule 06.08.2014    source источник
comment
Прежде всего, поскольку это плагин jQuery, вы должны добавить ссылку на него после ссылки на jQuery.min.js. Другое дело - вы можете объединить все свои скриптовые блоки в один, читаться будет намного легче.   -  person Ilya Luzyanin    schedule 06.08.2014
comment
Спасибо за исправление. Мне было интересно, как я мог бы исправить странные отступы... xD   -  person user3911868    schedule 06.08.2014


Ответы (1)


Ну, как я указал в комментариях, вы должны добавить ссылку на magnific-popup.js после jQuery, так как это плагин:

<script src="jquery.min.js"></script>
<script src="magnific-popup.js"></script>

Я создал этот jsfiddle, это то, что вы хотели (выглядит жутковато)? Также я объединил весь ваш скрипт в один блок вот так:

$(document).ready(function () {        
    $('.image-popup-vertical-fit').magnificPopup({
        type: 'image',
        delegate: 'a',
        closeOnContentClick: true,
        mainClass: 'mfp-img-mobile',
        image: {
            verticalFit: true
        }
    });
    $('.parent-container').magnificPopup({
        delegate: 'a', // child items selector, by clicking on it popup will open
        type: 'image'
        // other options
    });
    $('.image-popup-vertical-fit').magnificPopup({
        type: 'image',
        closeOnContentClick: true,
        mainClass: 'mfp-img-mobile',
        image: {
            verticalFit: true
        }

    });

    $('.image-popup-fit-width').magnificPopup({
        type: 'image',
        closeOnContentClick: true,
        image: {
            verticalFit: false
        }
    });

    $('.image-popup-no-margins').magnificPopup({
        type: 'image',
        closeOnContentClick: true,
        closeBtnInside: false,
        fixedContentPos: true,
        mainClass: 'mfp-no-margins mfp-with-zoom', // class to remove default margin from                left and right side
        image: {
            verticalFit: true
        },
        zoom: {
            enabled: true,
            duration: 300 // don't foget to change the duration also in CSS
        }
    });    
});
person Ilya Luzyanin    schedule 06.08.2014
comment
Ооо, значит, у меня должна быть ссылка magnific-popup.js в самом низу моего раздела body? Я пытался открыть jsfiddle, который вы пробовали, но по какой-то причине он у меня не загрузился. Я не уверен, что я объединил слишком много кодов jquery на своей странице. В итоге я добавил больше кодов jquery после того, как обнаружил, что один из них не работает... - person user3911868; 06.08.2014
comment
Так как ваш скрипт находится внутри $(document).ready() функции, не имеет значения, где вы ставите ссылки на ваши скрипты. Однако порядок ссылок на скрипты имеет значение. Что значит не загрузился? Вы не можете открыть jsfiddle? - person Ilya Luzyanin; 06.08.2014
comment
Неважно, xD, jsfiddle у меня раньше не загружался, но теперь он работает! Сейчас я очень запутался, похоже, всплывающие окна работают в jsfiddle....? Но когда я пробую коды локально, всплывающие окна даже не работают! мне нужно что-то скачать, чтобы коды jquery работали локально, потому что я не получаю таких же результатов: ( - person user3911868; 06.08.2014
comment
У вас есть jQuery и скрипты всплывающих окон Magnific в той же папке, что и ваш html? По сути, вы должны поместить их в какую-то папку с другими скриптами и на html-странице, а затем указать их местоположение (включив теги <script>) относительно этой страницы. - person Ilya Luzyanin; 07.08.2014
comment
Файлы находятся в одной папке в моем HTML, и я уже 5 раз проверил ссылки на файлы, чтобы убедиться, что у них правильные имена, и я все еще не получаю никаких всплывающих окон: (я не уверен, почему это не работает... - person user3911868; 11.08.2014
comment
Кажется, у меня 4 ошибки: Uncaught ReferenceError: $ не определено /my_jquery.js:12 Uncaught ReferenceError: $ не определено index_01.html:73 Uncaught TypeError: undefined не является функцией jquery.magnific-popup.min.js: 4 Uncaught TypeError: undefined не является функцией - person user3911868; 12.08.2014
comment
Это означает, что jquery не является загрузчиком на вашей странице. Вы уверены, что jquery загружается на вашу страницу и загружается перед вашим скриптом? - person Ilya Luzyanin; 12.08.2014
comment
Плохо, проигнорируйте первую ошибку (my_jquery.js)... она не была частью кодов Magnific-Popup. Я хотел бы поработать над тем, чтобы заставить jquery-файлы magnific-popup работать как-то.... - person user3911868; 13.08.2014