未捕获的TypeError:$(...)。lightGallery不是一个函数

时间:2016-09-23 16:35:46

标签: javascript jquery lightgallery

当我尝试单击链接时,它会在浏览器控制台中显示:

Uncaught TypeError: $(...).lightGallery is not a    function(anonymous function) @ index.html:250dispatch @ jquery.min.js:3r.handle @ jquery.min.js:3

这是我使用的代码:

    $('#gallery').on('click', function() {
    $(this).lightGallery({
        dynamic: true,
        dynamicEl: [{
            "src": 'assets/images/gallery/1.jpg',
            'thumb': 'assets/images/gallery/thumbs/1.jpg',
            'subHtml': '<h4>Fading Light</h4><p>Classic view from Rigwood Jetty on Coniston Water an old archive shot similar to an old post but a little later on.</p>'
        }, {
            'src': 'assets/images/gallery/2.jpg',
            'thumb': 'assets/images/gallery/thumbs/2.jpg',
            'subHtml': "<h4>Bowness Bay</h4><p>A beautiful Sunrise this morning taken En-route to Keswick not one as planned but I'm extremely happy I was passing the right place at the right time....</p>"
        }, {
            'src': 'assets/images/gallery/3.jpg',
            'thumb': 'assets/images/gallery/thumbs/3.jpg',
            'subHtml': "<h4>Coniston Calmness</h4><p>Beautiful morning</p>"
        }]
    })
});

请记住我在lightGallery中使用动态模式。

  1. 我之前已经包含了lightGallery库和之前的jQuery库。
  2. 我试图用$ j替换$。
  3. 我也试过“分号解决方案”,但没有运气。
  4. 这是我包括的整个图书馆:

        <script src="assets/web/assets/jquery/jquery.min.js"></script>
      <script src="assets/tether/tether.min.js"></script>
      <script src="assets/bootstrap/js/bootstrap.min.js"></script>
      <script src="assets/smooth-scroll/SmoothScroll.js"></script>
      <script src="assets/viewportChecker/jquery.viewportchecker.js"></script>
      <script src="assets/cookies-alert-plugin/cookies-alert-core.js"></script>
      <script src="assets/cookies-alert-plugin/cookies-alert-script.js"></script>
      <script src="assets/dropdown/js/script.min.js"></script>
      <script src="assets/touchSwipe/jquery.touchSwipe.min.js"></script>
      <script src="assets/jarallax/jarallax.js"></script>
      <script src="assets/bootstrap-carousel-swipe/bootstrap-carousel-swipe.js"></script>
      <script src="assets/jquery-mb-ytplayer/jquery.mb.YTPlayer.min.js"></script>
      <script src="assets/theme/js/script.js"></script>
      <script src="assets/mobirise-slider-video/script.js"></script>
      <script src="assets/formoid/formoid.min.js"></script>
      <!-- lightgallery -->
      <script src="assets/theme/js/lightgallery.min.js"></script>
      <script src="assets/theme/js/lg-thumbnail.min.js"></script>
      <script src="assets/theme/js/lg-fullscreen.min.js"></script>
      <script src="assets/theme/js/lg-share.min.js"></script>
      <script src="assets/theme/js/lg-zoom.min.js"></script>
      <script src="assets/theme/js/lg-autoplay.min.js"></script>
    

2 个答案:

答案 0 :(得分:6)

Wooooooooooo Haaaaaa我终于解决了它,问题可能是我有本地版本!! 当我切换到cdnjs版本时,它工作完美! 非常感谢大家! 我所做的只是用cdn链接取代本地的

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.3.2/css/lightgallery.css" />

<script src="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.3.2/js/lightgallery.js"></script>

答案 1 :(得分:0)

我确定,此插件是被调用的最后一个脚本。 我还将代码包装在ready函数中。

此外,我展示了如何使用变体从DOM中选择元素。我正在使用jQuery并从本地服务器运行所有程序。 lightgallery的来源是2018年的资料,可以从资源库中手动下载。

<script  type="text/javascript">
      $(document).ready(function() {
        $('.post img').wrap(function(){
          return "<div class='gallery' data-src='" + $( this ).attr("src") + "'></div>";
        });

        lightGallery(document.querySelector('.post'), {selector: ".gallery"});
      });
    </script>