没有javascript的优雅解决方案

问题描述:

所以我创建了一个jquery下拉菜单,看起来不错,但现在我需要处理noscript用户。在Javascript关闭的情况下,我的div仍然存在,并且还显示可选的沼泽标准选择框。没有javascript的优雅解决方案

我正在寻找一个优雅的解决方案,以删除所有jquery enalbled内容,(用css?),并用更多的baisc HTML替换它们。

+1

一些代码或更好的解释,你会有什么帮助我们来帮助你。 – 2011-02-24 12:44:13

+0

或者,您也可以转到其他路线,并让JavaScript在生效JavaScript时生成使其正常工作所需的标记。确保它在没有JavaScript的情况下工作,然后增强JavaScript体验。 – PatrikAkerstrand 2011-02-24 12:44:52

+0

而不是在同一视图中处理它,我会建议你检查服务器端,如果用户JavaScript是在他们的浏览器上启用,基于重定向到适当的独立views.i-e一个与JS,一个没有JS。 – 2011-02-24 12:45:58

您正在从错误的方向接近问题。您应该从基本的HTML开始,然后通过javascript/jQuery /等应用渐进式增强。使用该模型,您将始终拥有可操作界面的'禁用javascript'后退。

试图从“花里胡哨的”界面反向工作是非常困难的。

如果您的增强界面需要额外的HTML实体,那么最好的办法是将它们设置为“display:none”并使用javascript/jQuery /等来展示它们。

+1

一些资源:[WikiPedia的渐进式增强](http://en.wikipedia.org/wiki/Progressive_enhancement)(general),[ALA:Understanding Progressive Enhancement](http://www.alistapart.com/articles/)理解渐进式增强/)(理论)和[渐进增强:它是什么,以及如何使用它?](http://www.smashingmagazine.com/2009/04/22/progressive-enhancement-what-it-is (以及如何使用它/)(例子)。 – jensgram 2011-02-24 12:51:06

我会建议你去其他方式。首先你开发没有jQuery内容的页面。该页面应该只使用标准的html元素。然后您使用jQuery来扩展它们(例如,使用jQuery来更改标准下拉列表)。

同意拉撒路。为了帮助你的下拉菜单,你可以使用css ":hover"来实现一些隐藏功能,并且不使用JS。