2012-08-14 63 views
1

我有此腳本使用的一個:href屬性標籤交換的div出來。我想改爲使用具有title屬性的div標籤。使用DIV:標題標籤的屬性,而不是一個:href屬性切換的div

工作代碼

$(document).ready(function() { 
    $('#tabs div').hide(); 
    $('#tabs div:first').show(); 
    $('#tabs2 ul li:first').addClass('active'); 

    $('#tabs2 ul li a').click(function() { 
     $('#tabs2 ul li').removeClass('active'); 
     $(this).parent().addClass('active'); 
     var currentTab = $(this).attr('href'); 
     $('#tabs div').hide(); 
     $(currentTab).fadeIn(1000); 
     return false; 
    }); 
}); 

我在嘗試使用這種用div標籤,但不工作

<div id="tabs2"> 
    <ul class="nav"> 
    <li class="pc"><div class="tab-1" title="tab-1">text</div></li> 
    </ul> 
</div> 
$(document).ready(function() { 
    $('#tabs div').hide(); 
    $('#tabs div:first').show(); 
    $('#tabs2 ul li:first').addClass('active'); 

    $('#tabs2 ul li div').click(function() { 
     $('#tabs2 ul li').removeClass('active'); 
     $(this).parent().addClass('active'); 
     var currentTab = $(this).attr('title'); 
     $('#tabs div').hide(); 
     $(currentTab).fadeIn(1000); 
     return false; 
    }); 
}); 

沒有得到任何錯誤,但它不工作的某些原因。

回答

1

在HTML您提供的title屬性是tab-1
因此,當您獲得該值currrentTab將只包含文本tab-1

添加#選擇與tab-1標識的元素:

$('#' + currentTab).fadeIn(1000); 

或添加.選擇與班上tab-1元素:

$('.' + currentTab).fadeIn(1000); 
+1

請將tabindex屬性('tabindex = 1')添加到這些div,以便通過鍵盤導航的用戶可以關注它們! – steveax 2012-08-15 00:22:08

2

你缺少一個「#」在你選擇的開頭位置:

$(currentTab).fadeIn(1000); 

這導致$('tab-1')的時候應該是$ ('#tab-1')

我想它,當你使用的作品a[href]屬性,因爲你可能使用類似href="#tab-1"的東西。

+0

林困惑,其中井號應該去。應該是$(#+ currentTab).fadIn(1000); – ndesign11 2012-08-14 23:27:24

+0

幫了我很多。 – pisaruk 2013-01-15 17:47:03