2012-09-27 33 views
0

我有一个砖石问题。jQuery Masonry没有类名的儿童选择器

这里是我需要砌体应用的地方。

<ul class="text"> 
    <li> 
     <ul> 
      <li> <!--Trying to apply masonry only here--> 
       <ul> 
        <li></li><!--Not here--> 
       </ul>  
      </li> 
      <li> <!--Trying to apply masonry only here--> 
       <ul> 
        <li></li> <!--Not here--> 
       </ul>  
      </li> 
     </ul> 
    </li> 
</ul> 

只在第二个ul的li标签上应用砌体。如果我不为每个li标签添加一个类,那么masonry将无法正常工作,因为它也会将它添加到下一个ul> li中。如果我像这样为每个li添加一个类,我可以使它工作,但使用php做起来有点复杂。

<ul class="text"> 
     <li> 
      <ul> 
       <li class="class"> <!--Trying to apply masonry only here--> 
        <ul> 
         <li></li><!--Not here--> 
        </ul>  
       </li> 
       <li class="class"> <!--Trying to apply masonry only here--> 
        <ul> 
         <li></li> <!--Not here--> 
        </ul>  
       </li> 
      </ul> 
     </li> 
    </ul> 

使用此:

$("ul.text > li > ul").masonry({ 
       itemSelector : '.class' 
      }); 

但我不希望添加的类。我尝试了一些类似的东西,但它一直在对所有li标签应用砌体。

$("ul.text> li > ul").masonry({ 
     itemSelector : 'li' 
    }); 

有没有一种方法可以不使用类?

感谢

+0

如果你有一个.masonry,砖混应用其布局逻辑吧。如果你的元素嵌套在你的.masonry-brick中,他们也必然会将Masonry的布局逻辑应用到他们身上。再次阅读文档,了解砌体如何工作并查看示例代码。 – Systembolaget

回答

0

从文档

过滤器项目元素选择。如果未设置,则砌体默认使用容器的子元素为 。

建议避免砌体使用其布局逻辑中的任何其他隐藏元素。

所以我认为你应该删除itemSelector : 'li'据有关资料是正确的

+0

对不起,这不起作用。 – Kbr89

+0

在我的ansuer看到更新 –

+0

哦,这很奇怪,它的工作!我之前尝试过,它没有工作,但现在它确实。也许是因为我编辑了CSS样式。那么谢谢 – Kbr89

0

尝试

itemselector : 'ul.text> li > ul > li' 
+0

没有。 Itemselector必须是一个元素,一个类,id或简单的元素。 – Kbr89