【问题标题】:jQuery galleria plugin with dynamically loaded images带有动态加载图像的 jQuery Galleria 插件
【发布时间】:2009-11-17 01:09:16
【问题描述】:

我正在使用带有 jQ​​uery 的 Galleria 插件来创建我的图片库。我正在尝试将用户选择的图片动态加载到 DOM 中,并让图库自动更新以显示这些新图片,但它不起作用。

Firebug 显示图像已成功加载到 DOM,但 Galleria 没有显示缩略图。我需要一种方法来重新加载 Galleria 以显示新图像。

/* ---- Gallery Code ---- */
if ($(this).find('div').attr('title') == 'photogallery' && $('.galleria_container').length == 0)
{
   $('.gallery').galleria(
   {
      history   : false,
      clickNext : true,
      onImage   : function(image,caption,thumb) 
      { 
         if(! ($.browser.mozilla && navigator.appVersion.indexOf("Win")!=-1) ) 
         {
            image.css('display','none').fadeIn(1000);
         }

         var _li = thumb.parents('li');

         caption.css('display','none').fadeIn(1000);
         _li.siblings().children('img.selected').fadeTo(500,0.3);
         thumb.fadeTo('fast',1).addClass('selected');
         image.attr('title','Next image >>');
      },
      onThumb : function(thumb) 
      { 
        var _li = thumb.parents('li');
        var _fadeTo = _li.is('.active') ? '1' : '0.3';

        thumb.css({display:'none',opacity:_fadeTo}).fadeIn(1500);
        thumb.hover
        (
           function() { thumb.fadeTo('fast',1); },
           function() { _li.not('.active').children('img').fadeTo('fast',0.3); } // don't fade out if the parent is active
        )
     }
  });
}

/* ---- Gallery Selector ---- */
$(document).ready(function()
{
   var galleryImages = new Object();

   <?php
   echo $myGal;
   ?>

   function setImages(type)
   {
      var image = '';

      for (var i = 0; i < galleryImages[type].length; i++)
      {
         image += '<li><img src="' + galleryImages[type][i] + '"></li>';
      }

      $('ul.gallery').html(image);
   }

   $('ul.menu-horiz li ul li').click(function()
   {
      setImages($(this).attr('rel'));
   });
});

您看到的 PHP 代码只是创建了一个图像数组。

总结一下我的问题:新图像加载到 DOM 后如何重新加载 Galleria?

【问题讨论】:

    标签: jquery image dom reload


    【解决方案1】:

    您可能想查看LiveQuery plugin。它以这样一种方式将函数绑定到元素,即使 DOM 发生更改,它也会触发。

    【讨论】:

    • 我问了一个与此类似的问题,关于使用 AJAX 拉另一个画廊并让它启动。有人推荐了 LiveQuery 插件。但是我正在编码的网站设置为使用手风琴,所以它都是动态内容。一旦Galleria被初始化,就是这样。没有更多的页面加载。所以 LiveQuery 在这件事上不会有任何影响,不是吗?我如何使用 LiveQuery(在静态页面 - index.php 上)重新加载已经初始化的 Galleria 以包含新图像? ://
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2017-09-30
    相关资源
    最近更新 更多