Javascript 禁用详细信息/摘要
当我将新的Javascript 禁用详细信息/摘要,javascript,html,css,Javascript,Html,Css,当我将新的details标记与summary组合使用时,我希望禁用生成的输入。我以为 <details open disabled> 我可以做到,但遗憾的是,它不起作用 如何禁用details元素?您可以在元素上设置一个单击处理程序,防止默认事件行为,而不是使用不存在的disabled属性。快速而肮脏的方式是: <details open onclick="return false"> <summary>Click here</summar
details
标记与summary
组合使用时,我希望禁用生成的输入。我以为
<details open disabled>
我可以做到,但遗憾的是,它不起作用
如何禁用details元素?您可以在
元素上设置一个单击处理程序,防止默认事件行为,而不是使用不存在的disabled
属性。快速而肮脏的方式是:
<details open onclick="return false">
<summary>Click here</summary>
<p>content</p>
</details>
要解决您在评论中提到的焦点问题,请将
tabindex=“-1”
添加为
的属性,以防止其获得键盘焦点。请注意,我不确定这是否适用于每个浏览器,并且即使使用该属性,单击时仍会触发焦点事件。我想您可以返回false以防止默认行为:
<details open="" onclick="return false;">
<p>Hello</p></details>
你好
点击这里
内容
$(“.mydetails”)。单击(函数(事件){event.preventDefault();});
一个非常简单的方法是只使用CSS。如果愿意,您仍然可以使用disabled
属性或将其设置为类。当设置为none
时,声明会使摘要
标记对鼠标不可见(因此标记下方的元素可以单击)
点击这里
内容
点击这里
内容
详细信息[已禁用]摘要,
详细信息.已禁用摘要{
指针事件:无;/*阻止单击事件*/
}
这解决了一半的问题。遗憾的是,仍然存在工作重点的问题。你是说大纲风格吗?您可以使用summary:focus{outline:none;}删除该选项代码>(或一些更具体的选择器)。不,我的意思是它获得键盘焦点。CSS无法解决问题。@LCIDFire您可以尝试
以避免键盘焦点(但单击时仍会触发焦点事件)。请将选项卡索引
部分添加到您的答案中。另外,它工作正常。这是html5吗?因为我从未在其他html版本中见过这一点。是的,它确实是HTML5。就像总是先在Chrome中实现的一样(稳定,基本上没有错误),它更简单。谢谢你,伙计。你能解释一下你的答案吗?为什么这能解决被问到的问题?是的!不要害怕利用标准属性,即使它们在技术上不适用于元素。
<details open="" onclick="return false;">
<p>Hello</p></details>
<details class="mydetails" open>
<summary>Click here</summary>
<p>content</p></details>
$(".mydetails").click(function(event) {event.preventDefault();});
<details open disabled>
<summary>click here</summary>
<p>content</p>
</details>
<details open class="disabled">
<summary>click here</summary>
<p>content</p>
</details>
<style>
details[disabled] summary,
details.disabled summary {
pointer-events: none; /* prevents click events */
}
</style>