1

次のスクリプトを使用して、ページにタブを動的に追加しています。

var tabs = $("#tabs");
$.each(results, function(index, item) {
    tabs.tabs("add","get_tab_content.aspx?tab=" + item.key, item.value);
});

ここでresults、jsonデータが含まれています。

id次のスクリプトを使用してタブを取得しようとした場合を除いて、これはすべて機能します。

$("li.ui-tabs-selected").attr("id")

id上記のループのタブにが設定されていないかのように、その行は何も返しません。

ただし、手動でadd tabs and idsと入力すると、その行は正常に機能します。

<div id="tabs">
    <ul>
        <li class="tab" id="tab_1"><a href="tab0.htm">Home</a></li>
        <li class="tab" id="tab_2"><a href="tab1.htm">Default</a></li>
    </ul>
</div>

この手動HTMLの場合、行はまたはのいずれかを$("li.ui-tabs-selected").attr("id")返します。tab_1tab_2

id上記のループを使用してタブを作成するときに、タブを取得するにはどうすればよいですか?タブを追加するときにIDを指定する必要があると思いますか?しかし、それは単なる仮定です。その場合、どうすればIDを与えることができますか?

4

1 に答える 1

1

必要がないため、sは追加されませんid

タブのインデックスを使用してそれらを識別します。

なぜそれらにIDが必要なのですか?


アップデート

各タブのIDを追加するには、次のようにします(質問で指定したコードを使用し、デフォルトで新しいタブが最後に追加されると仮定します) 。

tabs.tabs("add","get_tab_content.aspx?tab=" + item.key, item.value)
    .find('>ul>li:last') // find the last li element, the tab we just added
    .attr('id',item.id); // use whatever id you want here ..i assumed you have an id in your json..

例: http: //jsfiddle.net/gaby/7Grb8/


アップデート2

インデックスでそれを行いたい場合は、ドキュメントで説明されてvar selected = tabs.tabs( "option", "selected" );いるように使用する必要があります

于 2011-05-19T14:19:53.890 に答える