2011-05-11 45 views
3

在此鏈接:http://jqueryui.com/demos/tabs/當我們看到「查看源文件」,我們有:jquery accessor id vs class?

<div id="tabs"> 
    <ul> 
     <li><a href="#tabs-1">...</a></li> 
     <li><a href="#tabs-2">...</a></li> 
     <li><a href="#tabs-3">...</a></li> 
    </ul> 
    <div id="tabs-1">...</div> 
    <div id="tabs-2">...</div> 
    <div id="tabs-3">...</div> 
</div> 

,所以我想知道,如何使用類而不是ID實現這一點,
考慮這個代碼部分將多次使用,可能會在不同的時間加載ajax,

回答

4

爲了動態添加選項卡,有一個add方法會自動爲您的選項卡控件命名,從而讓您重複使用您的選項卡創建代碼。

當標籤被添加到頁面,它觸發添加事件,如圖所示的標籤文檔頁:

var $tabs = $('#example').tabs({ 
    add: function(event, ui) { 
     $tabs.tabs('select', '#' + ui.panel.id); 
    } 
}); 

http://jqueryui.com/demos/tabs/#default

1

jquery UI選項卡控件需要唯一標識和訪問這些div,因此類不是一個選項。只需確保在向客戶端提供html之前提供了唯一的ID。

您可以在頁面上使用多個選項卡控件,而不會出現任何問題。

<script> 
    $(function() { 
    $("#tabs").tabs(); 
    $("#tabs2").tabs(); 
    }); 
    </script> 

    <div id="tabs"> 
     <ul> 
      <li><a href="#tabs-1">...</a></li> 
      <li><a href="#tabs-2">...</a></li> 
      <li><a href="#tabs-3">...</a></li> 
     </ul> 
     <div id="tabs-1">...</div> 
     <div id="tabs-2">...</div> 
     <div id="tabs-3">...</div> 
    </div> 

    <div id="tabs2"> 
     <ul> 
      <li><a href="#tabs2-1">...</a></li> 
      <li><a href="#tabs2-2">...</a></li> 
      <li><a href="#tabs2-3">...</a></li> 
     </ul> 
     <div id="tabs2-1">...</div> 
     <div id="tabs2-2">...</div> 
     <div id="tabs2-3">...</div> 
    </div> 
1

這根本不可能。

一個鏈接錨點工作與一個ID,它必須是唯一的。

如果您有多個標籤具有相同的類(按鈕相同),那麼當您單擊按鈕時應打開哪些標籤?我懷疑你會回答'所有人'。

如果是風格問題(css),你應該添加一個類以及id。

1

不幸的是,與jquery ui相關的內置選項卡是以靜態方式編碼的。

當你把div變成jqueryui標籤時,它在幕後做了很多工作。

標籤中鏈接的href屬性被編碼爲查找特定的內容div。因此href =「#tab-1」將始終顯示ID爲「#tab-1」的div。

這就是它的工作原理。如果你想使用這個類,你必須修改/擴展jqueryui庫中的jquery UI選項卡功能。或者你可以編寫你自己的Jquery標籤插件。

1

你可以使用addClass方法

$('#some_ul_id li').addClass(function(i, curr) { 
    return "item-" + i; 
});