2010-06-15 56 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