0
我有一個asp.net mvc的部分包含一個jQuery UI的標籤控制,標記像這樣:標籤控件的cookie不工作
<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 undefined
發生在jquery-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。任何線索,爲什麼這可能,或任何其他方式來解決這個問題?