JS移除类后,类型为的CSS第n个未更新
CSS nth-of-type not updating after JS removal of class
我创建了以下的JSFiddle:http://jsfiddle.net/qTLmV/
这是我正在使用的CSS:
.nested > .addable-group > div.active:nth-of-type(even) {
background: blue;
}
.nested > .addable-group > div.active:nth-of-type(odd) {
background: grey;
}
简化布局:
<div class="nested">
<div class="addable-group">
<div class="active"><a href="#">remove 1</a></div>
<div class="active"><a href="#">remove 2</a></div>
<div class="active"><a href="#">remove 3</a></div>
<div class="active"><a href="#">remove 4</a></div>
</div>
</div>
JS
$(document).on("click", "a", function(event) {
var container = $(this).parent();
container.hide();
container.removeClass("active");
//container.remove();
return event.preventDefault();
});
我想做的是,如果点击了任何"删除"链接,它们应该被隐藏,删除它们的"活动"类,并且交替的背景色应该保持一致。然而,我一直没能做到这一点。如果我完全删除DOM元素,它就可以工作,但简单地删除类就不行了。
我不想完全删除DOM元素,因为在实时应用程序中,它们包含表单字段,当提交时,会从DB中删除该元素的记录。
我有什么东西不见了吗?
编辑:作为一个快速而肮脏的解决方案,我最终只是将"已删除"的项目移到了组的底部:http://jsfiddle.net/qTLmV/2/
:nth-of-type()
不查看类,只查看元素类型。.addable-group
的所有子元素都是div
元素,无论其中一个元素上是否有.active
类,都不会改变它是.addable-group
的第n个div
子元素的事实。
如果您只需要根据.active
类来设置这些元素的样式,恐怕您需要使用JS来应用不同的类,并按该类设置样式。
$(document).on("click", "a", function(event) {
var container = $(this).parent();
$(this).remove();
container.remove();
});
相关文章:
- Css order属性不't在Jquery设置时更新
- jQuery整个页面正在重新加载以更新css
- 在Scroll上更新CSS代码:简化它就不会了'不要使用JQuery和最简单的Javascript
- Jquery在CSS下面更新
- 通过两种方法创建和更新 CSS
- Jquery动态更改CSS主题-强制更新类
- 当我尝试在网页中使用更新面板时,CSS不起作用
- CSS转换未在增加高度时更新背景色
- jQuery.CSS没有更新背景
- CSS在第一次点击jQuery.post提交时没有应用,然后在随后的点击中没有更新
- Javascript href 属性用于 css 未更新
- 在小间隔内通过javascript更新css时,会出现断断续续的动态观察动画
- 使用jQuery更新CSS属性
- CSS/JS未在Magento中更新
- 具有新创建的行的 Javascript tr 单击事件(更新 css)
- 如何在 css 中更新参数
- JavaScript/CSS-更新多个输入元素的值*和*大小
- 在不同的 DOM 元素中组合/批处理多个 CSS 更新以减少重排/重绘
- 我如何使我的CSS更新一致
- 汤博乐:如何用后标记控制CSS(更新:没有JQuery的工作方法!)