2

JQueryUIタブで作業しています。フォームの送信後に動的に生成されたタブを閉じたい。

これは私のコードです:

function submit_form(){
    alert(JSON.stringify($('form').serializeObject()));
    $('#result').text(JSON.stringify($('form').serializeObject()));
    var tabs = $("#container-1").tabs();
    tabs.tabs('remove', 1);
}

$(document).ready(function(){

    var tabs = $("#container-1").tabs();

    $('#add_tab').click( function(){

            var ul = tabs.find( "ul" );
            $( "<li><a href='#newtab'>New Tab</a></li>" ).appendTo( ul );
            $( "<div id='newtab'><form action='' method='post'>Name :<input type='text' name='name'></input></br>Email :<input type='text' name='email'></input></br>Phone Number :<input type='text' name='phone'></input></br><input type='button' value='Submit' id='form_button' onclick='submit_form()'></input></form></div>" ).appendTo( tabs );
            tabs.tabs( "refresh" );
            tabs.tabs( "option", "active", -1 );
    });
});

私のHTMLページ:

<body>

<div id="container-1">
    <ul>
        <li><a href="#fragment-1">List</a></li>
    </ul>   
    <div id="fragment-1">
        <table id="contact">
        <tr>
        <th> Name </th>
        <th>E-mail </th>
        <th> Phone </th>
        </tr>
        </table>
    </div>
</div>

タブを追加

閉じたいタブは、関数によって動的に作成されますon-click of add_tab。関数の最後で閉じたいですsubmit_form()

コードで削除されているはずです

tabs.tabs('remove', 1);

しかし、私はエラーが発生しています

Error: no such method 'remove' for tabs widget instance
http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js
Line 2

どうすれば修正できますか?

4

1 に答える 1

7

問題は、新しいjquery Uiで、removeメソッドを使用してremove関数が非推奨になったことです。

古いAPI:

$( "#tabs" ).tabs( "remove", 2 );

新しいAPI:

// Remove the tab
var tab = $( "#tabs" ).find( ".ui-tabs-nav li:eq(2)" ).remove();
// Refresh the tabs widget
$( "tabs" ).tabs( "refresh" );

これを念頭に置いて問題を修正してみてください。

于 2013-01-30T08:45:54.500 に答える