下文中提到的HTML元素和HTML标签是同一个事物的不同说法,表示形如<XXX> ... </XXX>的结构。可能会在下文中混用,如有迷惑在此致以歉意。
本模板技术实现是通过Widget和HTML元素样式类型进行显示和隐藏。这种显示和隐藏不具有动画,是即时的。
本模板的技术实现决定了它的效果仅能在页面渲染阶段生效,本质是对HTML内容的修改,因此不可用于解析器展开wiki代码前的阶段,即不能等同于{{#if:【条件】|显示内容|}},也不能用于解析器函数、模板、模块等wiki结构的参数。
同上原因,再加上本模板实际上插入了一段HTML元素,因此无法用Module:String、字符串处理相关的一系列模板及实现它们的解析器函数、模板、模块对本模板返回的内容进行处理,具体来说是无法返回正确的结果。
本模板的配套模板{{文本切换显示按钮}}在一个页面中仅允许存在一个,不管在一个页面中插入多少个模板引用,最终显示的仅有第一个。因此在将本模板应用于其他模板时,要注意这一点,勿与其他使用按钮的地方冲突。
本模板虽然名称上叫做“文本”切换显示,但实际上允许不包含换行符的部分wiki结构以及MediaWiki允许使用的所有HTML元素。
[[XXX|YYY]][http[s]://XXX YYY]<br/><table>等HTML元素;<ul>、<ol>等HTML元素;<div> ... 【可以插入换行】 ... </div>
<div><span> ... </span>【可以插入换行】<span> ... </span></div>
<div> ... </div>【不可以插入换行】<div> ... </div>
nowiki标签包裹。在传入模板后,使用Lua模块将nowiki标签中的wiki结构预展开成HTML元素,使内容符合格式。#switch的包装)和子页面对各版本进行分离。--サンムル(讨论) 2020年5月13日 (三) 12:27 (CST)回复
| 测试1测试1测试2测试2 | |||||||
|
| ||||||
——Xzonn(聊天) 2020年5月13日 (三) 13:19 (CST)回复
把我在讨论版的发言搬过来:
除了这些以外再补充两点:
{{文本切换显示|asdasd|<nowiki/>
{{BilibiliVideo|av114514}}
|div}}



{{文本切换显示样式}}和{{文本切换显示按钮样式}}失效,无法指定样式。--サンムル(讨论) 2020年5月14日 (四) 01:43 (CST)回复






@cancel=display:none让“取消选择”按钮不显示为例子好了。{{文本切换显示按钮样式}})、添加在页面的任何位置,都会导致按钮显示不出来,<span class="textToggleDisplayButtons" ...></span>标签是空的。--サンムル(讨论) 2020年5月14日 (四) 11:20 (CST)回复



这就是打字打错的后果,并不是bug。
{{文本切换显示|wjz|{{Template:文本切换显示/doc/示例}}<nowiki/>|span}}(span也可以换成div,bug相同)模板会把下面的内容全部隐藏。所以我不得不把文档里的示例段落放到最后,以免把其他段落也隐藏了。——我是亘古轮回Colby,2 0 5 3 / 0 8 2 3 / 2 9 7 0 / 2 7 9 9 / 5 0 4 2 /。 2020年5月22日 (五) 11:46 (CST)


我的意见与サンムル类似,即本模板名字改成“Template:切换显示”,“Template:文本切换显示”“Template:switch”成为重定向模板。
其实这个模板功能很强大,不论什么内容都能隐藏,某种程度上是比“隐藏内容”更好的选择,也能玩很多花活。但是现在这个名字不符合它的功能,给人感觉像是只对文本生效一样,这会降低很多人了解这个模板的愿望。
如果没啥问题的话,移动重命名和重定向都可以由我来做,我也会尽量测试好。——我是亘古轮回Colby,2 0 5 3 / 0 8 2 3 / 2 9 7 0 / 2 7 9 9 / 5 0 4 2 /。 2020年5月23日 (六) 15:14 (CST)回复



今天突发奇想,在{{切换显示}}中是否可以添加选项,通过opacity和visibility利用transition达到淡入淡出的效果?(或者直接用jQuery的fadeIn/fadeOut)--ZhMGP:~ Leranjun$ 主页 · 讨论 · 贡献 2020年8月6日 (四) 08:45 (CST)回复



@AnnAngela


{{切换显示按钮|data=列表|@default=data}}
{{切换显示|data|<nowiki/>
=
|div}}
即内容含有等于号的时候,模板功能失效,效果如下:
列表列表 div 使用{{=}}可以解决,但是这样就需要我加说明,请问有没有其他办法? ——我是亘古轮回Colby,2 0 5 3 / 0 8 2 3 / 2 9 7 0 / 2 7 9 9 / 5 0 4 2 /。 2020年9月9日 (三) 22:05 (CST)回复
{{切换显示按钮|data2=列表|@default=data2}}
{{切换显示|data2|2=<nowiki/>
=
|3=div}}
匿名参数按出现顺序使用数字1234为参数名,效果如下:
列表列表
——From


@AnnAngela


现在有点击单选框或复选框时有动画但没效果的问题,点击单选框甚至等效于取消选择的效果。—— Grandom 2020年12月13日 (日) 11:48 (CST)回复



@AnnAngela


【字符串代号】@input=【样式文本】失效了。—— Grandom 2020年12月15日 (二) 04:30 (CST)回复



{{明日方舟技能条}}实现依赖相邻元素选择器。目前版本在被选中的on元素外套了一层span,无法通过on以及before-on控制相邻元素的显示与隐藏。请求兼容性修复。--九江喵@不好好~卖☆萌~2020年12月20日 (日) 05:59 (CST)回复



即在单选模式下隐藏“取消选择”按钮,必须至少选择一个,因为在一个都不显示的情况下可能导致原文字语法不通(比如示例中的“一句作文”),或者排版错乱需要单独设计--
Ktmsobs(讨论•贡献) 2020年12月21日 (一) 16:30 (CST)回复






第五段话:{{切换显示|aaa|555}}
{{切换显示按钮样式|aaa@on=border-color:green|@cancel=display: none}}
{{切换显示按钮
|@radio=任意不为空的内容
|aaa=显示第五段话
}}
显示第五段话显示第五段话
异常示例:{{切换显示按钮|@radio=a|3=通常|6=6星|@#1=3|@#2=6}}
正常示例:{{切换显示按钮|@radio=a|3x=通常|6x=6星|@#1=3x|@#2=6x}} 通常通常6星6星
(根据←似乎这些“不同的表现形式”都是lua中表格顺序不定造成的,所以不必深究,直接除根就好了)
@default的有无和参数顺序的不同等,此bug似乎还有很多不同的表现形式,此处仅举出一个最精简的例子
如果方便的话请修复,如果技术上有困难的话也可以在文档中规定“字符串代号”必须包含字母或汉字而不能是纯数字。--Bbbbbbbbba(讨论) 2021年9月11日 (六) 20:00 (CST)回复
result[index] = {v, branches[v]}上方加入if branches[tonumber(v)] ~= nil then v = tonumber(v) end则可以解决问题,不过作为lua小白的我也能感觉到这一解决方法似乎并不优雅(比如如果字符串代号中“1.0”与“1”共存的话可能又会发生问题),所以还是由管理团队来决定吧,也许规定不能使用纯数字才是最简明且安全的解决方案。--Bbbbbbbbba(讨论) 2021年9月11日 (六) 22:10 (CST)回复
{{切换显示按钮|@radio=a|3x@off=通常|6x@off=6星|3x@on=通常on|6x@on=6星on|@#1=3x|@#2=6x}}通常on通常6星on6星 —— Grandom 2021年9月16日 (四) 16:48 (CST)回复
{{切换显示按钮|@radio=a|3x@off=通常|6x@off=6星|3x@on=通常on|6x@on=6星on|@#1=3x@off|@#2=6x@off}}通常on通常6星on6星 是bug,还是feature,这是一个问题


不知道好不好修,刚好发现了触发原因但不知道原理所以反馈下。
当页面内第一个多选框(即非radio)激活时,先跳转到任意其他页面(点链接,输网址…随意),再使用浏览器返回键回到该页面,页面左上角的语言转换下拉栏就会被默认展开;如果第二个在激活状态,就是右上角“更多”下拉栏会默认展开。
可以使用本页内#建议一节内的“测试1”“测试2”两个按钮复现。 —— Grandom 2022年1月29日 (六) 00:43 (CST)回复




如下例,假设有甲乙丙三人,现梳理他们的人际关系:
丙丙乙乙甲甲
甲和乙是恋人。甲和丙彼此放不下对方。甲乙丙三人的故事令人胃疼。甲和乙是恋人。乙和丙是曾经的朋友。甲乙丙三人的故事令人胃疼。甲和丙彼此放不下对方。乙和丙是曾经的朋友。甲乙丙三人的故事令人胃疼。
没错,就是白学(别打我)
这里虽然能正常显示,但点开代码就会发现,本来只需要写4句话就能搞定的事情,我却不得不写9句话。这样不仅效率低,还会带来其他的问题。比如代码观感极差且难以修改,或是如果内含标题,则此标题会在目录中多次显示,从而带来毁灭性的观感。哦对,它还没法多选,因为如果多选的话,就会产生重复内容。
总之,十分不“优雅”。
如果能够改成这样:
{{切换显示|对象1*=甲|对象2=乙|甲和乙是恋人。<nowiki/>}}{{切换显示|对象1=甲|对象2=丙|甲和丙彼此放不下对方。<nowiki/>}}{{切换显示|对象1=乙|对象2=丙|乙和丙是曾经的朋友。<nowiki/>}}{{切换显示|对象1=甲|对象2=乙|对象3=丙|甲乙丙三人的故事令人胃疼。<nowiki/>}}
(注*:此参数可用“1”代替,以保证兼容性。)
就会很舒服。
有没有什么办法实现这一点呢?非常感谢。--🥁Magikarp_SimChain🔔 2022年6月15日 (三) 22:16 (CST)回复






{{切换显示|A|①②③}}{{切换显示|B|②③}}{{切换显示|C|①②}}{{切换显示|D|①③}}{{切换显示|对象1=A|对象2=C|对象3=D|2=①}}{{切换显示|对象1=A|对象2=B|对象3=C|2=②}}{{切换显示|对象1=A|对象2=B|对象3=D|2=③}}{{切换显示按钮
|div1=显示div1
|div2=显示div2
|div3=显示div3
|div1$div2=显示div1、div2
|div2$div3=显示div3、div3
|div1$div3=显示div1、div3
|div1$div2$div3=显示div1、div2、div3
}}
{{切换显示|div1|
div1<nowiki/>
|div}}{{切换显示|div2|
div2<nowiki/>
|div}}{{切换显示|div3|
div3<nowiki/>
|div}}
显示div1显示div1显示div1、div2显示div1、div2显示div1、div2、div3显示div1、div2、div3显示div1、div3显示div1、div3显示div2显示div2显示div2、div3显示div2、div3显示div3显示div3
div1
div2
div3






{{切换显示|燕|苏秦}}
{{切换显示|赵|苏秦}}
{{切换显示|韩|苏秦}}
{{切换显示|魏|苏秦}}
{{切换显示|齐|苏秦}}
{{切换显示|楚|苏秦}}
{{切换显示|对象1=燕|对象2=赵|对象3=韩|对象4=魏|对象5=齐|对象6=楚|苏秦}}
楚楚燕燕赵赵韩韩魏魏齐齐



| 添加后 |
|---|
|
楚楚燕燕赵赵韩韩魏魏齐齐 |


