2010-06-15 55 views
0

你们认为这段代码是什么,以帮助一些懒惰的人在那里:)jQuery的辅助功能选项

$('a').each(function (i,n){ 
    $title = $(n).attr('title'); 
    if(!$title){ 
     $(n).attr('title',$(n).html()); 
    } 
}); 

考虑到大多数链接都包含了标题为他们的文字相同的,所以......让我knwo如果你们中的任何一个像这样?

因此,我们可以告诉w3school一个框打勾:)

+1

什么是地狱$标题“$”,变量?这不是上帝的缘故。 – Prashanth 2010-06-15 16:34:43

+0

它没有任何区别我使用$来区别哪些是jquery vars,哪些是正常的js vars它不会影响它如何存储数据 – Val 2010-06-15 16:49:37

+0

但我重新考虑你们都会同意浏览器供应商在默认情况下应该这样做为了获得 Val 2010-06-15 16:52:30

回答

1

你应该用var声明前缀的变量,以防止它作为一个隐含的全局。

你整个事情可以简化为:

$('a:not([title])').attr('title', function() { 
    return $(this).text(); 
}); 

(宁愿text()超过html())。

1

它是浏览器的不必要的工作。如果你有大量的链接,这段代码可能会大大减慢初始化时间。

但是,如果你想加快速度,你可以隐藏所有你的文字(即,把它拿出来的DOM),使用这个代码,然后再次显示它。不过,这可能会闪烁你的文字。

而且,只是不偷懒,放在一个标题:)

+0

我同意,它只是在循环中击中DOM。 – Prashanth 2010-06-15 16:35:47

+0

即时通讯不懒惰总是使用标题只是认为这个概念会帮助那些谁是:) – Val 2010-06-15 16:48:13

0

您的最终目标是什么?你只是想满足一些arbritrary清单?或者你是否真的试图让用户更容易访问你的网站?您是否尝试过可访问的浏览器 - 是否确认他们不仅仅在没有标题属性集的链接上使用链接文本?如果是这种情况,你实际上并没有取得任何成就,并且让每个人的网站变得更慢。

如果你想支持辅助功能,请妥善做到这一点,并使用正确想出来的title属性。

+0

就像我说的这是一些懒惰的人在那里意味着不是我自己。 你总是可以使用标题不会影响它。 你可以把页面的最后或页面加载......因此它不会减慢网站的速度。 在回火之前,元素必须存在也是合乎逻辑的。一旦页面被加载,代码可以踢,因此不会减慢页面,它是一个后台进程。 – Val 2010-06-15 16:58:50

+0

+1 @Val标题旨在向链接文本传达补充信息。与其链接文本相同的标题带来没有信息,因此是无用的,因此不应该存在。我对这个W3schools盒子一无所知,你认为你必须打勾,但如果它在任何地方都要求标题,这显然是错误的。 WCAG 2.0技术[H30](http://www.w3.org/TR/WCAG-TECHS/H30.html)和[H78](http://www.w3.org/TR/WCAG-TECHS/H78。 HTML)到H81肯定不会促进这一点。编辑:抱歉告诉你,你可以垃圾你的脚本,这对谁需要它的人没有帮助。 – FelipeAls 2010-06-19 06:48:41

+0

我想补充说,与链接文字相同的标题可能比无用的更糟糕,实际上会让分散注意力的用户产生反作用。听到两个或三个链接的屏幕阅读器用户在这种情况下会关闭标题呈现,然后错过HTML代码中存在的有用标题! – FelipeAls 2010-06-19 06:56:49