使用data-href进行W3Cvalidation错误

由于我在使整个DIV可点击的上下文中使用data-href =“”,因此我得到一个validation错误。 JS和HTML如下。 我该怎么做才能使这个W3C兼容?

JQUERY

$(function(){ $(".linked").click(function(){ window.location = $(this).attr("data-href"); return false; }); }); 

HTML

 

如果可能,您应该考虑使用支持data-*属性的doctype 。 对于HTML5,那是:

  

由于data-*HTML5规范的一部分,因此您需要使用html5-doctype:

  

任何其他doctype都将根据HTML4或XMHTML-Rules解析您的网站,其中data-*属性无效。

编辑:

你应该始终使用正确的doctype启动你的html。 由于在所有浏览器中触发标准模式,这是“唯一正确的方法”,除非你真的想要XHTML(尽管我看不出你应该这么做的原因)。

EDIT2:

您可能想要考虑使用锚标记,因为它已经有一个href并被认为是可点击的?

data- attributes是HTML5规范的一部分,因此如果您的文档没有HTML5 Doctype,validation器将产生错误。

与此同时,将这些属性与HTML4文档类型一起使用没有问题,浏览器将无法使用它,您将能够使用它们 – 页面将无法validationW3Cvalidation器。

你通过jQuery添加属性很酷吗? 或者我们需要更动态的解决方案吗?

 $(".linked").attr('data-href', 'link.html').click(function(){ window.location = $(this).attr("data-href"); return false; }); 

考虑到这不是符合WC3的方法,您是否考虑过将其移入Title属性? 删除’.html’line,并在您的点击function中:

HTML:

 

jQuery的

 $(".linked").click(function(){ var dataHref = $(this).attr('title'); window.location = dataHref.html; return false; }); 

然后,我们再次遇到传播问题。 我不知道你的链接是如何传播的,无论你是硬代码还是用服务器端脚本动态创建它们,所以后者和以前的解决方案对你来说仍然不够好。

我被低估了,因为OP说提供的解决方案不起作用 – 所提供的解决方案完全正常。 请参阅下面的小提琴,并确保在您下载某人之前,您的javascript中没有错误。

http://jsfiddle.net/n68A8/