2013-05-27 47 views
0

我有这部分代码将元素添加到砌体表。调用砌体时的jQuery语法

  function(newElements) { 
      var $newElems = jQuery(newElements).css('display', 'none'); 
      $newElems.imagesLoaded(function(){ 

       jQuery('.gallery').bxSlider({ 
        auto: false, 
        pager: false, 
        adaptiveHeight: false 
       }); 
       $newElems.css('display', 'block'); 
       container.masonry('appended', $newElems, true); 
       }); 
      } 

加载图像后,我们应用bxSlider,之后再添加砖石砖。 我的问题是,我可以将滑块仅应用于具有“galery”类的新元素,而不应用于DOM中具有此名称的每个元素。

谢谢你的时间!

+0

我看到你已经在使用** class **选择器,它会将bxslider应用于具有“.gallery”类的元素。那么当前的实现问题到底是什么? – dreamweiver

+0

问题是,在同一页面中有更多的元素与之前已经应用了bxslider的同一个类。我希望它只适用于新元素。也许这样说吧。 $ newElems.jQuery('。gallery')。bxSlider({0},但我无法找到正确的语法。 – Kotheof

+0

这里有一个简单的逻辑,如果你在萤火虫控制台观察所有bxslider的元素都会有特定的()($('img .gallery'))each(function(){if(!($($('));这个方法可以用来确定元素是否具有该类,然后应用于该类。 (this).hasClass('bxclassname'))){//将bxslider添加到它}});' – dreamweiver

回答

0

尝试:

function(newElements) { 
    var $newElems = jQuery(newElements).css('display', 'none'); 
    $newElems.imagesLoaded(function(){ 
     jQuery('.gallery', $newElems).bxSlider({//<<<<< specify context for the jQuery selector 
      auto: false, 
      pager: false, 
      adaptiveHeight: false 
     }); 
     $newElems.css('display', 'block'); 
     container.masonry('appended', $newElems, true); 
    }); 
} 

可替换地,发现对.gallery元件$newElems

$newElems.find('.gallery').bxSlider({...}); 

或找到.gallery元件之间$newElems

$newElems.filter('.gallery').bxSlider({{...}); 
+0

第一个作品!非常感谢! – Kotheof