根据 id 而不是索引选择 jquery-ui-tab?

发布于 2024-12-09 15:11:43 字数 1217 浏览 0 评论 0原文

有人知道为什么以下不起作用吗?

$.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 );
    });

});

Anyone know why the following does not work?

$.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 );
    });

});

I am trying to assign id's to the tabs, then select the tabs using their id's.

The above does nothing when a button is clicked and it returns no errors at all.

It works fine when using the index as shown below, but I need to use an id for various reasons:

$.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 );
    });

});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

喵星人汪星人 2024-12-16 15:11:43

您可以使用 index() 方法从选项卡标头的 id 获取选项卡的索引:

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

由于在上面的代码中调用 index() 时不带参数,因此它将返回该元素相对于其同级元素(即其他选项卡标题)的索引。

You can use the index() method to get the index of the tab from the id of its header:

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

Since index() is called without arguments in the code above, it will return the index of the element relative to its siblings, i.e. the other tab headers.

回忆凄美了谁 2024-12-16 15:11:43

您可以使用选项卡的 id 来切换选项卡:

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

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

you can switch the tabs with the id of the tab:

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

$("button").click(function() {
    $tabs.tabs( "select", "#tabs-6" );
});
清风疏影 2024-12-16 15:11:43

在我看来, .index() 返回从 1 开始的索引,因此如果我有 3 个选项卡并且想要选择第三个选项卡,我应该返回:

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

It seems to me that .index() returns an index from 1 so that if I have 3 tabs and want to select the third one, I should return :

$("#button" + item.id).live("click", function() {
    $("#tabs").tabs("select", $("#tab_" + item.id).index()-1);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文