0

我有一个页面,我已经为许多其他内容加载了 jquery(即,我已经承担了加载 jquery 的开销)。

考虑到这一点,是否有一种“正确”的方式来显示/隐藏元素——这两种中的哪一种比另一种“更好”还是“更有效”?

仅限 JAVASCRIPT:

document.getElementById('stuff').style.display = 'none';

查询:

$jsjp('#stuff').css('display','block');

谢谢!

4

3 回答 3

1

我会使用$('#stuff').hide()| $('#stuff').show()而不是$('#stuff').css('display','none');|$('#stuff').css('display','block');

于 2012-10-04T10:30:51.990 回答
1

Javascript 总是比 jQuery 快,只是因为 jQuery(通常)引入了至少一个额外的调用层,否则本来可以是原生的。

但是考虑一下,至少在您的问题的上下文中,您将如何在本机 JS 中隐藏一个元素:

foo.style.display = 'none';

与 jQuery 相比:

foo.hide();

没有太大区别,除了字符数,真的没什么可做的。

现在,让我们反过来说。你将如何foo在 jQuery 中显示回来?

foo.show();

在原始 JS 中:

foo.style.display = 'block';

完毕。也没有太大区别。

或者有吗?花点时间考虑一下。我们这里的第一个问题实际上是我们如何得到我们首先设置的假设display = 'block'。我们应该设置foo块显示吗?不应该是一个inline代替吗?还是一个inline-block

大多数情况下,您无需继续决定使用哪个,如果您这样做的机会不大,您可能会编写一些支持代码来确保您这样做了。

jQuery 实现showand的主要(经常被忽视的)好处之一hide是所有跟踪都是为您默默完成的。如果你调用.hide()了一个块元素,一旦你调用.show()它,jQuery 会将它放回块中,而不是其他任何东西。

无论您决定继续提出问题,请确保您也考虑到这一点。

于 2012-10-04T10:39:40.610 回答
1

Vanilla JavaScript 总是比 jQuery 快,但是由于 ID 选择器的 jQuery 使用原生getElementById函数,两者没有主要区别,你也可以使用showandhide方法:

$jsjp('#stuff').hide()
于 2012-10-04T10:30:00.227 回答