繁体   English   中英

下一个动画(这个)下所有使用jQuery的父母?

[英]Animate (this) nextAll parents with jquery?

单击某个元素后,我正在尝试为该元素的所有父项设置动画。

我尝试了以下几种迭代:

$(this).parent().nextAll().animate({
  marginTop: '-=50px'
}, 500);

但是我不认为语法正确...

父元素有一个“ .useritem”类,我有一种必须使用的感觉,但是我不确定在我认为指定父项>此项目>所有之后>向上移动50像素的地方工作。

任何帮助,指导或建议都会走很长一段路,谢谢。

编辑1:HTML

我的HTML是根据服务器响应动态创建的。 它看起来像这样:

<div id='useritem' class='useritem'>
    <div id='msgnotification' class='msgnotification'>0</div>
    <img id='userimg' class='userimg' src='data/here'>
    <div id='usertxt' class='usertxt'>
        <div id='name' class='name'>User</div>
        <div id='username' class='username'></div>
    </div>
    <div id='useradd' class='useradd'><i class='fa fa-user-plus'></i></div>
</div>

这些堆叠有很多倍,当用户单击“ useradd”时,其宽度设置为0,并且marginTop代码应在其下的每个“ useritem”上触发。

谢谢您的输入,也感谢@Barmar指出我的代码/应该/已经工作了,我再次进行了遍历,意识到我出了问题。 我已经将marginTop代码包装到一个超时中,以等待初始单击的父元素的动画宽度设置为0。但是,当您再次尝试调用“ this”时,该元素不在那里,因此代码没有没有初始选择器。

我改用.delay()修复了这个问题。 现在,我的初始代码可以正常工作了!

再次感谢您的投入和时间。 这是更新的代码:

$(this).parent().animate({
    'width': 0,
    'padding-left': 0,
    'padding-right': 0
}, 300, function() {
    $(this).next().animate({
        marginTop: '-=61px'
    }, 300);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM