mel*_*iny 6 jquery html5 google-chrome css3
我正在尝试为details元素实现jQuery回退.如果您从未听说过它,它基本上是一个Disclosure小部件.如果存在布尔属性open,则表示将向用户显示摘要和附加信息.如果该属性不存在,则仅显示摘要.以下HTML和CSS实现了这一点.
HTML
<!-- opened -->
<details open>
<summary>Summary</summary>
<p>Additional information</p>
</details>
<!-- closed -->
<details>
<summary>Summary</summary>
<p>Additional information</p>
</details>
Run Code Online (Sandbox Code Playgroud)
CSS
details summary ~ * {
display: none;
}
details[open] summary ~ * {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
然后我添加了以下jQuery来open在summary单击元素时添加/删除属性.
jQuery的
$("summary").click(function() {
if ($(this).parent().attr("open")) {
$(this).parent().removeAttr("open");
} else {
$(this).parent().attr("open", "open");
}
});
Run Code Online (Sandbox Code Playgroud)
它会添加和删除open属性,但pChrome中的元素可见性不受影响.我究竟做错了什么?这是一个实例.
更新
open应该改为open="open"或者第一次不行.BoltClock还提供了另一种解决方案.但这不是主要问题.结果发现这是这里报告的一个 WebKit bug 。
错误 21346属性值选择器在属性更改时不会重新评估
添加此空规则将暂时解决我遇到的问题:
details[open] {}
Run Code Online (Sandbox Code Playgroud)
与错误报告中的描述相反,当使用属性选择器后跟后代组合器时,似乎会发生这种情况。
不过,Chrome 12 今天发布了,它原生支持details和summary元素。
| 归档时间: |
|
| 查看次数: |
1939 次 |
| 最近记录: |