2012-12-05 76 views
0

我是新來jQuery和JS,並試圖找出是否有可能從基本的無序列表中創建簡單的選項卡。我有下面的動態生成的HTML(我不能更改列表標記,但我可以插入按鈕標記)。jQuery:是否可以從常規列表中創建選項卡?

我已閱讀的所有標籤教程僅討論使用按鈕和div的無序列表作爲標籤本身。是否有可能以相反的方式使用家長li s的標籤和div s的按鈕?

<div>tab 1</div> 
<div>tab 2</div> 
<div>tab 3</div> 

<ul id="lists"> 
    <li> 
    <h2>Title 1</h2> 
    <ul> 
     <li>An item</li> 
     <li>An item</li> 
     <li>An item</li> 
    </ul> 
    </li> 
    <li> 
    <h2>Title 2</h2> 
    <ul> 
     <li>An item</li> 
     <li>An item</li> 
     <li>An item</li> 
    </ul> 
    </li> 
    <li> 
    <h2>Title 3</h2> 
    <ul> 
     <li>An item</li> 
     <li>An item</li> 
     <li>An item</li> 
    </ul> 
    </li> 
</ul> 
+3

http://www.whathaveyoutried.com –

+0

是的,它是可能的。大多數選項卡庫允許您指定要使用的選擇器。如果您在問題中添加特定選項卡庫/插件的名稱,則可能會得到更詳細的響應。 –

+0

你想google「[導航列表](https://www.google.com/search?q=list+for+navigation)」。 – Cymen

回答

1

HTML

<div class="tab">tab 1</div> 
<div class="tab">tab 2</div> 
<div class="tab">tab 3</div> 

<ul id="lists"> 
<li> 
    <ul> 
    <li><h2>Title 1</h2></li> 
    <li>An item</li> 
    <li>An item</li> 
    <li>An item</li> 
    </ul> 
</li> 
<li> 
    <ul> 
    <li><h2>Title 2</h2></li> 
    <li>An item</li> 
    <li>An item</li> 
    <li>An item</li> 
    </ul> 
</li> 
<li> 
    <ul> 
    <li><h2>Title 3</h2></li> 
    <li>An item</li> 
    <li>An item</li> 
    <li>An item</li> 
    </ul> 
</li> 
</ul> 

CSS

.tab { 
    display: inline-block; 
} 

#lists { 
    margin: none; 
    padding: none; 
} 

#lists > li { 
    list-style: none; 
    margin: none; 
    padding: none; 
    display: none; 
} 

的Javascript(jQuery的)

var tabs = $('#lists>li'); 

$('.tab').click(function (e) { 
    e.preventDefault(); 
    var current_tab = tabs.eq($(this).index()).show(); 
    tabs.not(current_tab).hide(); 
}); 
+0

或者你的意思是下拉菜單而不是標籤頁?這個問題有點含糊。 –

+0

哎呀,我搞砸了我的HTML,已經糾正它...我需要標籤,即我需要在那裏有三個按鈕在頂部,第一個父列表需要出現,另外兩個需要隱藏。當按鈕2被點擊時,列表1需要滑出視圖,列表2需要替換它。點擊按鈕3時列表3也一樣。 – user1444027

+0

下拉菜單不是懸停事件,而是點擊事件? –