0

次のようにマークアップされたjquery uiタブコントロールを含むasp.net mvcパーシャルがあります。

<div id="admin_tabs" class="tabs_admin">
    <div id="admin_header">
        <ul> 
            <span class="admin_title">Administration</span>
            <li style="float:right; display:inline"><a href="#maint_tab">Maintenance</a></li>
            <li style="float:right; display:inline"><a href="#log_tab">Logs</a></li>
            <li style="float:right; display:inline"><a href="#groups_tab">Groups</a></li>
            <li style="float:right; display:inline"><a href="#users_tab">Users</a></li>
            <li style="float:right; display:inline"><a href="#app_settings_tab">Application Settings</a></li>
        </ul>
    </div>
    <div id="app_settings_tab" class="tab_admin">
    </div>
    <div id="users_tab" class="tab_admin">
    </div>
    <div id="groups_tab" class="tab_admin">
    </div>
    <div id="log_tab" class="tab_admin">
    </div>
    <div id="maint_tab" class="tab_admin">
    </div>
</div>

<script type="text/javascript">
    $("#admin_tabs").tabs({ selected: 4 });
</script>

これはうまくいきます。しかし、ページが更新されたときに最後に開いていたタブをアプリケーションに記憶させたいので、JavaScript を次のように変更しました。

$("#admin_tabs").tabs({selected: 4, cookie: {}});

これにより、すぐに JavaScript エラーが発生し、タブが機能しなくなります。chromeコンソールによると、Uncaught TypeError: Cannot call method 'apply' of undefinedjquery-ui.jsの7520行目でエラーが発生しています。jquery ui を含める前に Cookie プラグインを含めましたが、効果はありません。壊れているコードは

_cookie: function() {
    var cookie = this.cookie ||
        ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() );
    return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );

ページを最初にロードしたときに Cookie が設定されていないため、壊れているように見えます。それがなぜなのか、または問題を解決する他の方法についての手がかりはありますか?

4

1 に答える 1

0

私は何が間違っているかを理解しました。何らかの理由で、Cookie プラグインが正しく含まれていませんでした。外部スクリプトで使用していましたが、ドキュメントの本文に移動すると問題が解決しました。

于 2012-06-26T16:39:29.903 に答える