0

我有一个问题。我为这些寻找解决方案。想将 el 与子功能一起使用。但到目前为止没有工作。如果我清除 el 它可以工作,但我最后拥有所有元素类。

Mootools 脚本

 $$('ul#portfolio li, .ce_id').each(function(el) {  
                    if(!el.hasClass(filterVal)) {  
                        el.fade('out').setStyle('display', 'none').addClass('hidden');

                    } else {  
                      el.setStyle('display', 'block').fade('in').removeClass('hidden');
                      $$(el':nth-last-child((4n+4)').addClass('last');
                    } 

希望你们能帮助我。还是不能将 el 或 VAR 与 :nth-last-child 一起使用?

更新:但是没有用。

              else {  
               el.setStyle('display', 'block').fade('in').removeClass('hidden');
               el.getElements(':nth-last-child(4n+4)').addClass('last');
             }

更新 2:

这里是代码所以我希望当我点击打印时,每 4 li 女巫都没有隐藏并且让女巫点击的班级最后获得班级。 http://jsfiddle.net/6whd9/1/

最好的问候

4

1 回答 1

1

我稍微减少了代码,但你不能只el在选择器中。相反,您应该使用el.getChildrenor el.getElements。这是一个例子:

$$('#parent > div').each(function(el){
    el.getChildren(':nth-last-child(4n+4)').addClass('last');
});

这是一个工作示例:http: //jsfiddle.net/ZxMUh/

编辑:从你的问题中很难理解什么有效,什么无效。但是,如果您尝试制作动画,则不能只是将其淡入。您需要先将其隐藏。

$$('#parent div.hidden').fade('hide');


$$('#parent > div').each(function (el) {
    el.removeClass('hidden').fade('in');
    el.getChildren(':nth-last-child(4n+4)').addClass('last');
});

这是示例:http: //jsfiddle.net/ZxMUh/2/

编辑(得到小提琴之后):在我的例子中,我认为你在哪里改变了“li”中的第 n 个孩子。问题是你不能在每个语句中做到这一点。分开做。

这是使用时的小提琴:nth-​​last-child:http: //jsfiddle.net/6whd9/2/

但是,不太可能会做你想做的事,在这种情况下使用 :nth-child 是不可能的。你必须自己做出选择。

 var visable = $$('ul#portfolio li:not(.hidden)').reverse();
 visable.each(function (item, index) {
     // same as 4n + 4
     if (index % 4 == 3) {
         item.addClass('last');
     }
 });

这是一个演示它的小提琴:http: //jsfiddle.net/6whd9/4/ (我将最后一个类添加到带有纯红色边框的样式中,因此它是可见的)

我希望我终于明白了你的问题...

于 2013-01-19T19:57:54.617 回答