Jquery事件第二次调用它时不起作用

时间:2013-09-27 09:48:21

标签: javascript jquery html colorbox wookmark

我有一个带图片库的页面,我正在使用jquery wookmark插件,带有过滤功能。然后我也想使用插件颜色框(wookmark已经在他们的插件中提供了例子),我能够加入彩盒和过滤系统。我头脑中的问题是,当我只是一个过滤器,而不是50张照片显示,只有5可见,我怎么说彩盒只显示那5?

所以我按照这样初始化colorbox:

    $('li a').colorbox({
         rel: 'lightbox', scalePhotos: true, maxWidth: '80%', maxHeight: '80%'
    });

然后在过滤器的点击事件中,我认为最好的方法是,每当有点击时,从所有图像中删除颜色框,并再次初始化颜色框仅适用于具有活动类的li内的项目,如下所示:

    var onClickFilter = function(event) {

      var item = $(event.currentTarget), activeFilters = [];
      item.toggleClass('active');

      // Collect active filter strings
      filters.filter('.active').each(function() {
        activeFilters.push($(this).data('filter'));
      });

      handler.wookmarkInstance.filter(activeFilters, 'or');       

  //here i remove colorbox from every item
      $.colorbox.remove();        

      //here i instantiate colorbox for active item 
  $('#tiles li.active a').colorbox({
        rel: 'lightbox', scalePhotos: true, maxWidth: '80%', maxHeight: '80%'
      });
    }

这种方式有效!例如,我加载了100个图像的页面,颜色框库显示100个图像显示;我点击一个过滤器,我得到10个图像可见,colorbox给出10个图像显示,我点击另一个过滤器添加更多图像,我得到24个图像可见,colorbox刷新它的画廊到24.事情是,如果我再次点击相同的最后一个过滤器停用它,colorbox不再只看到10个图像,而是24.

1 个答案:

答案 0 :(得分:0)

嗯,实际上我发布的是正确的。如果有人想使用它,我很乐意提供帮助。但我发现我的问题不是我所描述的问题。

Wookmark插件,只添加和删除类不活动。所以在wookmark的js中,当项目处于非活动状态时,我并没有删除类。他们我们一直待在这两个班级,而且由于活跃没有属性,我没有看到。感谢您的帮助(头脑风暴)...