首页 > 解决方案 > 未捕获的类型错误:$(...).magnificPopup 不是函数

问题描述

我有以下标记(注意它是通过 php eval 函数呈现的):

 <div class="my-gallery">
      ...
 </div>

 <script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

 <script>

   $.getScript("//cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js")
         .done(function() {

              $('.my-gallery').magnificPopup({
                  type: 'image',
                  gallery: {
                     enabled: true
                  }
             }); 

        })
       .fail(function() {
            console.log('fail');
       });

 </script>

但是我收到以下错误:

Uncaught TypeError: $(...).magnificPopup is not a function

* 更新 *

将代码更改为以下工作时:

 <script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js"></script>

 <script>

       $('.my-gallery').magnificPopup({
                  type: 'image',
                  gallery: {
                     enabled: true
                  }
       }); 

 </script>

这很奇怪。$.getScript()为什么使用该方法时不起作用。在网络选项卡中,它看起来像是拨打了两次电话,请参阅图片:

网络选项卡

标签: jquerymagnific-popup

解决方案


就我而言,卡巴斯基安全软件功能 antibaner 阻止了正常运行。尝试禁用您的防病毒软件。


推荐阅读