2010-03-20 111 views
4

我有一個工作正常的jQuery語句。我將如何重寫.livejquery live tabIndex

$(document).ready(function() 
{ 

    $(':input:enabled:visible, a:enabled:visible, span.ValidatorClass').each 
    (function(i, e) { $(e).attr('tabindex', i) }); 


    }); 

我之所以需要這個是我隱藏/顯示元素有時使用.show.hide,這時我需要重置選項卡順序出現/消失的元素。

+0

如果你只顯示和隱藏的元素,你可以設置反正標籤索引 - 它會被忽略的隱藏要素,所以從'$值(文件) .ready'應該是正確的。那麼什麼不適合你? – Kobi

+0

如果我這樣做。顯示新出現的元素沒有設置標籤索引,因爲當這個頁面加載時它們不可見,所以當它們在標籤時跳過。 – Victor

+2

當然,因爲你選擇了':visible'。如果你選擇了':input,a,span.ValidatorClass'? (順便說一下,''有Tab鍵索引嗎?) – Kobi

回答

1

就我所知,顯示和隱藏元素不會引發任何事件,因此live不會幫助您。

但是,由於您不添加新元素或重新排序,因此您可以從頭開始正確設置tabindex。瀏覽器無論如何都會忽略隱藏或禁用的元素。沒有:visibleenabled過濾器運行代碼:

$(':input, a, span.ValidatorClass') 
.each(function(i, e) { $(e).attr('tabindex', i) }); 
+0

感謝您的幫助 – Victor