Выбираете jquery-ui-tab на основе его идентификатора вместо индекса? - PullRequest
2 голосов
/ 13 октября 2011

Кто-нибудь знает, почему не работает следующее?

$.each( data.d, function( index, item ) {

    // creates the tabs with custom ids
    $( "#tabs" ).tabs( "add", "page.aspx?id=" + item.id, item.name )
        .find('>ul>li:last')
        .attr('id', 'tab_' + item.id);

    // creates the buttons
    $( "#buttons" ).append( "<input type='button' id='buttona" + item.id + "' value='" + item.name + "'>" );

    // link buttons with tabs
    $( "#buttona" + item.id ).live('click', function() {
        $( "#tabs" ).tabs( "select" , "#tab_" + item.id );
    });

});

Я пытаюсь назначить id вкладки, затем выберите вкладки, используя id.

Приведенное выше ничего не делает при нажатии кнопки и вообще не возвращает ошибок.

Работает нормально при использовании index, как показано ниже, но мне нужно использовать id для различныхпричины:

$.each( data.d, function( index, item ) {

    // creates the tabs
    $( "#tabs" ).tabs( "add", "page.aspx?id=" + item.id, item.name );

    // creates the buttons
    $( "#buttons" ).append( "<input type='button' id='button" + index + "' value='" + item.name + "-" + index + "'>" );

    // link buttons with tabs
    $( "#button" + index ).live('click', function() {
        $( "#tabs" ).tabs( "select" , index );
    });

});

Ответы [ 3 ]

2 голосов
/ 13 октября 2011

Вы можете использовать метод index () , чтобы получить индекс вкладки по идентификатору ее заголовка:

$("#button" + item.id).live("click", function() {
    $("#tabs").tabs("select", $("#tab_" + item.id).index());
});

Поскольку index() вызывается без аргументов в приведенном выше коде, он вернет индекс элемента относительно его братьев и сестер, то есть других заголовков вкладок.

0 голосов
/ 18 января 2013

Мне кажется, что .index () возвращает индекс из 1, поэтому, если у меня есть 3 вкладки и я хочу выбрать третью, я должен вернуть:

$("#button" + item.id).live("click", function() {
    $("#tabs").tabs("select", $("#tab_" + item.id).index()-1);
});
0 голосов
/ 13 октября 2011

Вы можете переключать вкладки с идентификатором вкладки:

var $tabs = $("#tabs").tabs();

$("button").click(function() {
    $tabs.tabs( "select", "#tabs-6" );
});
...