.removeClass( ‘可见’)addClass( ‘不可见’); vs. .hide()或.show()
我是实习生,我在标题中遇到了类似上面的代码。
$(".someClass").removeClass('visible').addClass('invisible'); $(".someClass").removeClass('invisible').addClass('visible'); //there are css classes for this that set display to none etc.
这是错误的,我负责更改一些UI的东西,所以我认为我会相应地用.show()
和.show()
替换上面的。 这些错误或多或少都消失了。 一种方式比另一种方式有什么优势? 在这种情况下,后者看起来效果更好,那么为什么要以第一种方式实现呢?
编辑:
我只是想显示和隐藏页面元素,具体取决于所选的页面选项。 哪种选择是最佳做法?
$(selector).hide();
和
$(selector).show();
简单地说
style="display:none;"
和
style="display:block;"
分别到选择器。
添加和删除类时,可以添加无数样式并在样式表中管理它们。
就个人而言,当我只是通过jQuery显示或隐藏选择器时,我会使用
show(); hide();
要么
toggle();
.removeClass( ‘可见’)addClass( ‘不可见’); – 给一个元素一个类,它可以有一个或多个属性,在这种情况下它可能显示:none和display:block(或table,或者……其他东西,你不知道)
.hide()和.show() – 不会弄乱元素的类,它会直接使用display:none和display:block(或之前的任何类型的可见性)更改其样式
这取决于使用的情况。 但是,在添加和删除类时,您可以获得更多控制权,但可能性能较差。
编辑:圣莫利,评论家伙是对的,我一直生活在谎言中。 我想知道当我100%确定它没有恢复其默认可见性时,我是否经历过一个错误或某些东西,但是强制分配“阻止”。
jquery网站说:
这大致相当于调用.css(“display”,“block”),除了display属性恢复到最初的状态。 如果元素的显示值为内联,则隐藏并显示,它将再次以内联方式显示。
隐藏和显示方法正在使用样式内联代码
style="display:block" style="display:none"
并且show方法总是添加“display:block”。 如果你需要使用例如display:inline-block – 你应该使用你的类,如果没有 – 你可以使用show和hide。
而不是组合显示和隐藏,您可以使用方法切换
通常通过CSS隐藏和显示元素是一种很好的做法,但这是一种不好的方法。
如果您要通过切换CSS类来隐藏和显示元素,请通过在有意义的最高级元素上切换语义类来实现。 在诸如.showing-post
或.creating-comment
类的已知状态之间移动单个更高级别的元素,然后将其细化到其所有子元素,隐藏一些元素,调整其他元素等等。
不要向元素本身添加类似invisible
或visible
类,这些类过于复杂,并且已经重新发明了已经可用的.show()
和.show()
.hide()
。