Py学习  »  Jquery

我使用的jquery太多了吗?我什么时候过这条线?

Andrea • 6 年前 • 1791 次点击  

最近,我发现自己经常使用jquery和javascript,经常和使用css之前一样。

例如,我使用javascript/jquery替换表行颜色或创建按钮和链接悬停效果。这可以接受吗?或者我应该继续使用CSS来处理这些事情吗?

所以真正的问题是: 当我使用太多jquery时?当我越过这条线时,我怎么能理解?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/31517
文章 [ 8 ]  |  最新文章 6 年前
Kurru
Reply   •   1 楼
Kurru    8 年前

好吧,别把我当成巨魔…

如果你的web应用不能在一个没有启用javascript或者与jquery不兼容的环境中工作,那么你只需要选择最容易管理的。如果一个应用程序实际上根本不起作用,那么对它进行可视化支持没有好处。

如果你想让它在没有javascript支持的情况下工作,那么你应该尝试使用css。但是,如果你不打算不支持javascript,并且它可以工作,那么你可以选择最简单的方式。

DisgruntledGoat
Reply   •   2 楼
DisgruntledGoat    15 年前

例如,我使用javascript/jquery替换表行颜色或创建按钮和链接悬停效果。这可以接受吗?或者我应该继续使用CSS来处理这些事情吗?

实际上,这取决于您的浏览器支持。您可以使用以下代码在表上执行Zebra条带化:

table.classname tr:nth-child(even) td {
  background-color: #ddd;
}

但这在Internet Explorer中根本不起作用(尽管它在即将到来的版本9中应该起作用)。因此,如果您需要所有东西看起来都是相同的跨浏览器,请使用jquery。

对于链接悬停效果,假设您的意思是颜色变化等,而不是花哨的动画, 绝对使用CSS 因为这在任何地方都得到了支持。

Alec
Reply   •   3 楼
Alec    15 年前

jquery通常在加载文档后应用。我想如果你能用简单的CSS来实现同样的事情,那么CSS就是你要做的事情。减少浏览器的负载,如果有人没有启用jquery,至少还有(一些)样式是因为css。

Harmen
Reply   •   4 楼
Harmen    15 年前

如果可以设置一个类属性而不是许多样式属性,则使用jquery的次数太多。例如:

/** Select 400 rows and change the background colour **/
$('#table tr').css('backgroundColor', 'blue');

而不是:

/** jQuery **/
$('#table').addClass('blueRows');

/** CSS **/
#table tr.blueRows {
    background-color: blue;
}

为了避免jquery样式,您还可以为主体设置一个类,以便在启用了javascript的浏览器中更容易使用CSS进行样式设置:

/** jQuery **/
$(document).addClass('JS-enabled');

/** CSS **/
body #table tr{
    background: #FFF;
}

body.JS-enabled #table tr {
    background: blue;
}
Justin Niessner
Reply   •   5 楼
Justin Niessner    15 年前

如果它是一个很容易在CSS中实现的东西,那么就放弃jquery,在CSS中实现它。这样,您就不必依赖于JavaScript的执行来获得应用程序的外观。

Arnej65
Reply   •   6 楼
Arnej65    15 年前

如果你在浏览器上关闭Java脚本,并且你的站点/应用程序不运行或者看起来功能不正常,那么你就有问题了。

JS很好,但是如果禁用了它,它应该永远不会阻止用户使用您已经构建的东西。

Nick Craver
Reply   •   7 楼
Nick Craver    15 年前

我不认为这里有一条“线”,我认为这里有一些直截了当的事情和一些灰色区域,你必须平衡你想要的东西。高级功能、性能、兼容性,想想这些都是三角形的,很难做到这三点 尽可能的好 同时。

如果CSS可以做到,当然可以用CSS来做到。如果不能在CSS中完成,请使用jquery,但不要在不需要开销的地方使用jquery,例如。 $(this).attr("id") 通常可以 this.id ,许多东西在DOM上是严格可用的,并且仍然以跨浏览器的方式使用。

你什么时候用得太多了?当它不是 需要 ,有时您需要jquery用于跨浏览器的ccs3选择器,有时您使用的css选择器已经可用。 把它放在样式表中 . 还有很多其他的例子,但是如果你能在没有它的情况下以一种跨浏览器的干净方式通过它,那么就没有必要了,像褪色这样的事情并不是轻而易举的事情。如果您需要包含jquery,就没有理由不使用 .fadeIn() 一旦你(代码已经包含在内,为什么要复制它?)

javascript与无javascript

正如评论中所说,你的网站应该提供 没有javascript的所有基本功能 这通常不是问题,例如通过Ajax捕获点击并加载内容……如果您不捕获内容,他们会进行整页重新加载,这是对标准行为的简单回退。然而,所有的“钟声和哨声”?这是固执己见,但我认为你不应该屈从于提供 全部的 没有javascript的功能。用户关闭了它,他们没有得到花哨的东西,那很好……作为一个例子,禁用javascript会禁用很多 非本质特征 你可以四处浏览,但主要是评论、投票 行动 没有javascript就不一定可用。

Andy E
Reply   •   8 楼
Andy E    7 年前

如果您使用的是jquery中的另一个数字,而不使用jquery就可以轻松地完成这些任务,那么您就越线了。 jquery。jquery的目的是让生活更轻松,但不应以牺牲兼容性或可用性为代价。

jquery当然不应该被用来替代css——想想那些禁用了javascript的用户。

我知道这张照片被滥用了,但有人不得不把它扔到这里:

image credit - bobines

. jquery的目的是让生活更容易,但它不应该以牺牲兼容性或可用性为代价。

jquery当然不应该被用来替代css——想想那些禁用了javascript的用户。

我知道这张照片被滥用了,但有人不得不把它扔到这里:

Image Credit - bobince .