这是一个与此处类似的问题:为什么我的 cookie 设置没有被应用?
我知道这很笨拙,但我还没有找到另一种方法来实现这一点 - 我想读取一个 cookie,并基于 cookie val(“true”或“false”)打开或关闭选项卡的可见性,使用Razor/C#、HTML 和 jQuery 的组合。
我想出的是使用 Razor 代码将 div 的“title”属性基于该属性,然后在 jQuery 中读取该属性 val 以设置可见性 val,如下所示:
剃刀:
string selectTwitterCookie = Request.Cookies["selectTwitter"].Value;
HTML:
<div id="duckbilledPlatypusTab-Twitter" title=@selectTwitterCookie>
jQuery:
if ($("#duckbilledPlatypusTab-Twitter").title == "true") {
$("#duckbilledPlatypusTab-Twitter").visible("visible");
} else {
$("#duckbilledPlatypusTab-Twitter").visible("not visible");
}
...当然,“不可见”并不是我真正需要的。我宁愿更直接地对其进行编码,例如:
($("#duckbilledPlatypusTab-Twitter").title == "true") ? $("#duckbilledPlatypusTab-Twitter").visible("visible") : $("#duckbilledPlatypusTab-Twitter").visible("invisible");
有谁知道如何做到这一点?
更新
好吧,另一个奇怪的情况。查看 CDT 中的值,我发现所有选项卡都具有相同的类(“ui-tabs-anchor”):
<a href="#duckbilledPlatypusTab-Twitter" class="ui-tabs-anchor" role="presentation" tabindex="-1" id="ui-id-1">Twitterpated</a>
<a href="#duckbilledPlatypusTab-Bing" class="ui-tabs-anchor" role="presentation" tabindex="-1" id="ui-id-3">Bingo</a>
...所以他们的 html 似乎没有受到我在代码中添加的 class="display-@WhateverCookie" 的影响:
<div id="duckbilledPlatypusTab-Twitter" class="display-@TwitterCookie">
...然而,那些添加了该类的人不会在他们的 iframe 中显示任何内容 - 除了 Twitter;Twitter 运行良好……所以,它又回到了编码板*,尽管有时它感觉更像是一个占卜板或草稿板。
- 伴着 Merle Haggard 的“Back to the Barrooms”的旋律演唱。
更新 2
将其更改为此允许 iframe 再次工作:
class="display-"+@BingCookie
(而不是 class="display-@BingCookie")
但有趣的是——CDT 似乎仍然没有意识到动态创建的类。
更新 3
奇怪......即使在为 html 添加标题之后:
<div id="duckbilledPlatypusTab-BingSearch" style="min-height: 50vh" title="Bla" class="display-"+@BingCookie>
...这到 jQuery 就绪方法的结尾:
if ($("#duckbilledPlatypusTab-Bing").attr('title') == "true") {
$("#duckbilledPlatypusTab-Bing").css('display', 'block');
} else {
$("#duckbilledPlatypusTab-Bing").css('display', 'none');
}
...标签仍然可见。
CDT 将元素视为:
<div id="dynaMashTab-Bingo" style="min-height: 50vh;" title="bla" class="display- ui-tabs-panel ui-widget-content ui-corner-bottom" +@bingocookie="" aria-labelledby="ui-id-4" role="tabpanel" aria-expanded="true" aria-hidden="false"></div>
IOW,“类”声明看起来完全古怪......