ASP.Net + JQuery选项卡:使用Cookie选项打破我的GUI

时间:2011-02-16 16:54:50

标签: javascript jquery asp.net jquery-ui cookies

我在网页上有一个标签式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
        }
    });
});

通过'break'我的意思是 - 我的最后一个标签的内容(包括一个'submit'按钮)最终会显示在每个标签页的底部,尽管标签本身看起来很好。单击时没有任何选项卡打开相应的窗格,但是当我单击选项卡时,我可以在浏览器的地址栏中看到正确的选项卡ID。

我已经比较了两个页面的来源(有和没有cookie选项),除了调用JQuery tab函数之外,它们相同。< / p>

但是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(...)函数添加标签,则标签的标识方式就是<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> 。当然,我不会以这种方式添加标签 - 我的所有标签都有GUID ID,这些ID与来自DB的元素相关,并由Repeater控件输出。

以下一些HTML供参考:

{{1}}

1 个答案:

答案 0 :(得分:1)

jQuery UI Docs开始注意:需要Cookie插件。

  

将最新选择的标签存储在a中   曲奇饼。然后使用cookie   确定最初选择的选项卡   如果未定义所选选项。   需要Cookie插件。对象   需要有关键/值对   形成cookie插件期望的   选项。可用选项(示例):   {expires:7,路径:'/',域名:   'jquery.com',安全:真实}。以来   jQuery UI 1.7也有可能   定义通过使用的cookie名称   名称属性。