.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类的已知状态之间移动单个更高级别的元素,然后将其细化到其所有子元素,隐藏一些元素,调整其他元素等等。

不要向元素本身添加类似invisiblevisible类,这些类过于复杂,并且已经重新发明了已经可用的.show().show() .hide()