社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

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

Andrea • 5 年前 • 869 次点击  

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

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

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

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

好吧,别把我当成巨魔…

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

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

DisgruntledGoat
Reply   •   2 楼
DisgruntledGoat    13 年前

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

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

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

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

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

Alec
Reply   •   3 楼
Alec    13 年前

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

Harmen
Reply   •   4 楼
Harmen    13 年前

如果可以设置一个类属性而不是许多样式属性,则使用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    13 年前

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

Arnej65
Reply   •   6 楼
Arnej65    13 年前

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

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

Nick Craver
Reply   •   7 楼
Nick Craver    13 年前

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

如果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    6 年前

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

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

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

image credit - bobines

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

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

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

Image Credit - bobince .