2017-09-11 65 views
0

我有几个Venobox画廊在同一页上。一些画廊有数百张照片,这就是为什么我只显示每个画廊的前3个缩略图。动态添加元素到灯箱(Venobox)画廊

<a class="venobox loadmore loadmore1" title="" data-gall="gal1" data-vbtype="ajax" data-bid="x-y-z-1" href="/show.php?pid=1"><img src="thumb1.jpg" /></a> 
<a class="venobox loadmore loadmore1" title="" data-gall="gal1" data-vbtype="ajax" data-bid="x-y-z-1" href="/show.php?pid=2"><img src="thumb2.jpg" /></a> 
<a class="venobox loadmore loadmore1" title="" data-gall="gal1" data-vbtype="ajax" data-bid="x-y-z-1" href="/show.php?pid=3"><img src="thumb3.jpg" /></a> 

<div class="hidden showmore1"></div> 

<a class="venobox loadmore loadmore2" title="" data-gall="gal2" data-vbtype="ajax" data-bid="x-y-z-2" href="/show.php?pid=4"><img src="thumb4.jpg" /></a> 
<a class="venobox loadmore loadmore2" title="" data-gall="gal2" data-vbtype="ajax" data-bid="x-y-z-2" href="/show.php?pid=5"><img src="thumb5.jpg" /></a> 
<a class="venobox loadmore loadmore2" title="" data-gall="gal2" data-vbtype="ajax" data-bid="x-y-z-2" href="/show.php?pid=6"><img src="thumb6.jpg" /></a> 

<div class="hidden showmore2"></div> 

当用户开始观看一些画廊(在任何缩略图点击),点击的图像必须出现,并在后台脚本必须加载所有的缩略图这个画廊的链接(图像):

<div class="hidden showmore1"> 
<a class="venobox loadmore loadmore1" title="" data-gall="gal1" data-vbtype="ajax" data-bid="x-y-z-1" href="/show.php?pid=7"><img src="thum7.jpg" /></a> 
<a class="venobox loadmore loadmore1" title="" data-gall="gal1" data-vbtype="ajax" data-bid="x-y-z-1" href="/show.php?pid=8"><img src="thumb8.jpg" /></a> 
<a class="venobox loadmore loadmore1" title="" data-gall="gal1" data-vbtype="ajax" data-bid="x-y-z-1" href="/show.php?pid=9"><img src="thumb9.jpg" /></a> 
</div> 

当我点击任何缩略图,脚本加载图像的其余部分,但不显示图像点击的问题。我只能点击新加载的缩略图,但不能点击前三个缩略图中的任何一个。与此同时,当我打开一个新加载的图像并单击“上一个”箭头时,我也可以看到前3张照片。

所有这些工作与PrettyPhoto脚本,但PrettyPhoto没有响应,所以我决定实施Venobox,但有这个问题。

脚本:

jQuery(function($){$(document).ready(function(){ 

    var handler = function(e){ 
    e.preventDefault(); 
    e.stopPropagation(); 
    var href = $(this).attr("href"); 
    var dbid = $(this).attr("data-bid"); 
    var myarr = dbid.split("-"); 
    var ftip = myarr[0]; 
    var fnum = myarr[1]; 
    var falb = myarr[2]; 
    var fpoid = myarr[3]; 
    var order_by = myarr[4]; 

    if($(this).hasClass('loadmore')) { 
     $.ajax({ 
     method: "POST", 
     url: "/loadmore.php", 
     data: {poid:fpoid,alb:falb,typ:ftip,num:fnum,order_by:order_by}, 
     success: function(d){ 

      $('#showmore'+fpoid).html(d); 
      $('.loadmore'+fpoid).removeClass('loadmore'); //removing class so that new images load only once 

      $("a[data-gall^='gal"+fpoid+"'").venobox(); //reactivating venobox 
      $("a[data-gall^='gal"+fpoid+"'").filter("a[href='" + href + "']").click(); 

     } 
     }); 
    } 
    } 
})}); 

回答

0

venobox;触发点击的方式是 $(“#firstlink”)。venobox()。trigger('click');

也有回调你可以使用上面的代码(详细信息在上面的链接)