【发布时间】:2011-02-16 16:54:49
【问题描述】:
我在网页上有一个选项卡式 GUI,使用:
- jQuery 1.4.2
- JQuery-UI 1.8.9(完整下载)
“窗格”div 的 ID 是数据库中域对象的 GUID。一切正常。
但是当我在函数调用中包含cookie 选项时
$(document).ready(function () {
//$("#tabs").tabs(); //Without tabs works fine
$("#tabs").tabs({ //This call with cookie option breaks everything.
cookie: {
expires: 1
}
});
});
我的意思是“中断” - 我的最终选项卡(包括“提交”按钮)的内容最终显示在每个选项卡页面的底部,尽管选项卡本身看起来不错。单击时,所有选项卡都不会打开相应的窗格,但是当我单击选项卡时,我可以在浏览器的地址栏中看到正确的选项卡 ID。
我比较了两个页面的来源(有和没有cookie 选项),它们相同除了调用JQuery tab 函数。
但是Javascript控制台报错:
cannot call method 'apply' of undefined
还有什么我需要做的才能让它工作吗?文档建议不要...
我已经按照 Nalum 的建议加入了 cookie 插件,但这并没有解决问题。
钻入jquery-ui-1.8.9.custom.min.js 得到了令人讨厌的代码:
return d.cookie.apply(null,[b].concat(d.makeArray(arguments ...
这段代码似乎期望[b] 类似于ui-tabs-1,如果您通过tabs.add(...) 函数添加选项卡,这就是标识选项卡的方式。当然,我不会以这种方式添加我的选项卡——我所有的选项卡都有 GUID ID,这些 GUID ID 与来自数据库并由中继器控件输出的元素相关。
下面的一些 HTML 供参考:
<div id="tabs">
<ul>
<li>
<a href='#TabDiv471de30d-aaec-4485-8a50-1b2fdbc58053'>
Tab A
</a>
</li>
<li>
<a href='#TabDiv951e2fee-9272-4a8c-becb-3f3a07770347'>
Tab B
</a>
</li>
</ul>
<div id='TabDiv471de30d-aaec-4485-8a50-1b2fdbc58053'>
This is Pane A
</div>
<div id='TabDiv951e2fee-9272-4a8c-becb-3f3a07770347'>
This is Pane B
</div>
</div>
【问题讨论】:
标签: javascript jquery asp.net jquery-ui cookies