2013-07-10 115 views
-1

我使用下面的代碼,所以我可以點擊一個鏈接INSIDE選項卡的內容並打開另一個選項卡在同一頁面(沒有頁面跳躍)。我爲鏈接添加了一個特殊的類('跳轉'),我想跳到另一個選項卡中的錨點。更有效的jQuery鏈接與鏈接

這對我的作品,但必須有寫這個的一個更有效的方法:(!兩次)

var $tabs = $("#tabs").tabs(); 
$('.ui-tabs-panel a.tab1').click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", 0);}); 
$('.ui-tabs-panel a.tab2').click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", 1);}); 
$('.ui-tabs-panel a.tab3').click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", 2);}); 
$('.ui-tabs-panel a.tab4').click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", 3);}); 
$('.ui-tabs-panel a.tab5').click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", 4);}); 
$('.ui-tabs-panel a.tab6').click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", 5);}); 
$('.ui-tabs-panel a.tab7').click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", 6);}); 
$('.ui-tabs-panel a.tab8').click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", 7);}); 
$('.ui-tabs-panel a.tab9').click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", 8);}); 

$('.ui-tabs-panel a.tab1jump').click(function(e) {$tabs.tabs("option", "active", 0);}); 
$('.ui-tabs-panel a.tab2jump').click(function(e) {$tabs.tabs("option", "active", 1);}); 
$('.ui-tabs-panel a.tab3jump').click(function(e) {$tabs.tabs("option", "active", 2);}); 
$('.ui-tabs-panel a.tab4jump').click(function(e) {$tabs.tabs("option", "active", 3);}); 
$('.ui-tabs-panel a.tab5jump').click(function(e) {$tabs.tabs("option", "active", 4);}); 
$('.ui-tabs-panel a.tab6jump').click(function(e) {$tabs.tabs("option", "active", 5);}); 
$('.ui-tabs-panel a.tab7jump').click(function(e) {$tabs.tabs("option", "active", 6);}); 
$('.ui-tabs-panel a.tab8jump').click(function(e) {$tabs.tabs("option", "active", 7);}); 
$('.ui-tabs-panel a.tab9jump').click(function(e) {$tabs.tabs("option", "active", 8);}); 

我可以做到這一點無需編寫一行爲每個標籤?

+0

http://codereview.stackexchange.com/ – j08691

回答

1

你可以遍歷,只是修改選擇

var i = 1; 
while (i<10) 
    { 
    $(".ui-tabs-panel a.tab" + i).click(function(e) {e.preventDefault(); $tabs.tabs("option", "active", (i-1_);}); 
    $('.ui-tabs-panel a.tab' + i + 'jump').click(function(e) {$tabs.tabs("option", "active", (i-1));}); 
    i++; 
    }