2011-03-04 95 views
0

当添加JQuery来隐藏类时,它当然会等待页面加载,然后隐藏类,同样的事情'addClass'。在页面加载时,它必须有更好或更快的方式才能“加载”。任何人都知道任何想法?我给我的网站下面的JQuery脚本的链接,看看他们在行动:JQuery即时addClass或隐藏类

隐藏子过滤器:Link to example of my script to hide sub filters (notice left navigation filters)

if(jQuery('.refinement_category_section').length){ 
    jQuery('.refinement_custom_category_section').hide() && 
     jQuery('.refinement_filter').hide(); 
} 

jQuery(document).ready(function(){       
    if(jQuery('.refinement_category_section').length){ 
     jQuery('.refinement_custom_category_section').hide() && 
     jQuery('.refinement_filter').hide(); 
    } 
}); 

OR

添加一个类:Link to example of my script adding Class (notice left navigation filters)

$('.refinement_brand_section').parent().addClass('filterresults');

+0

使用css ... .className {display:none; }。 – Joseadrian 2011-03-04 20:57:16

+0

我是唯一一个关心辅助功能的人吗?渐进式增强意味着,如果用户不(不能)使用JavaScript,它不会被破坏。通过javascript隐藏它们,而不是透露它们,是要走的路。 – tvanfosson 2011-03-04 21:03:47

+0

tvanfosson - 我同意你的看法。然而,由于赞助商要求拥有离线功能和客户端决策过程树的组合,我知道许多管理后端仅使用javascript作为默认功能。正如我所说,我得到你,但它是非常具体的用例,我不觉得你总是可以授权可访问性问题(本身 - 它们应该适应),以反对业务需求。这是我的很多项目中一直存在的问题,所以我确实感觉到了这一点 – 2011-03-04 21:44:49

回答

1

后改变它用Firebug,看来这个问题是要载入图像的数量。我的建议是在应用您的样式更改或页面上的项目数量较少(或两者)后,使用javascript为您的项目动态加载图片。这将导致非JavaScript用户的降级但仍然功能的界面。对于支持JavaScript的浏览器,您可以调整加载的图片的方式和数量,以实现更好的效果。

您还应该为小的界面元素使用精灵,以便下载单个图像并使用CSS来显示它的各个部分。将您的JavaScript文件和样式表合并到您的制作网站中也会有所帮助 - 您有20多个js文件和13个样式表,每个样式表都需要单独的请求。您可能想要运行YSlow并遵循其他建议。

+0

谢谢我会考虑这样做 – ToddN 2011-03-04 22:24:04

1

,你可以添加CSS规则来隐藏这些类,然后jQuery的负载

.refinement_category_section, .refinement_custom_category_section, .refinement_filter { 
    display: none; 
} 
+0

然后,如果存在javascript错误(如加载Google Analytics(分析))或用户正在使用屏幕阅读器,则它们将不会显示。 – tvanfosson 2011-03-04 21:01:22

+0

我不认为有一种方法可以在不等待DOM准备好处理程序的情况下执行您想要的操作。 – yoavmatchulsky 2011-03-04 21:09:34

+0

@yaov - 通过简单地减少请求数量并保持接口可访问性,您可以做很多改进。 – tvanfosson 2011-03-04 21:14:51