2013-05-27 50 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