【发布时间】:2019-08-30 23:15:10
【问题描述】:
我在<details> 内的<summary> 内有一个<input type="checkbox"> 标签,不幸的是,它会在选中或未选中时切换<details> 以打开或关闭,这与this question concerning space toggling details 不同,但不幸的是不能在我的 Firefox 版本中,我无法使用相同的方法进行修复。
见下sn-p:
$('input').change(function(e) {
e.stopPropagation();
e.preventDefault();
return false;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<details>
<summary>
<input type="checkbox">
</summary>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse finibus bibendum lorem, vitae efficitur felis mattis vitae. Sed mattis tristique rutrum. Morbi a placerat purus, et pulvinar risus. Vivamus accumsan sapien et nisi vulputate blandit. Aenean nec consectetur nulla. Nunc efficitur tincidunt placerat. Vivamus blandit est lectus, ut fermentum velit vulputate ut. Morbi elementum sem massa, eleifend laoreet dui tristique quis. Nulla mi dolor, consectetur blandit fermentum quis, tempor id nisi. Phasellus vel lobortis enim, id blandit turpis. Nullam dapibus feugiat risus eu pharetra. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam enim justo, pharetra sit amet urna sed, ultricies tempor nibh.
</div>
</details>
如何通过选中或取消选中复选框来防止 <details> 被打开/关闭? (除了将<input> 标签移到<summary> 之外的明显答案。我很好奇为什么会发生这种情况)
编辑
正如@Terry 提到的,然后由我确认,这个问题不会影响 Safari 或 Chrome,甚至 Windows 上的 Firefox 似乎也有不同的行为(它只是完全忽略了对复选框的点击)。已确认影响 OS X Mojave 10.14.4 上的 Firefox 66.0.2-3。
此外,如果您在<summary> 和return false; 上捕获点击事件,则复选框仍会切换<details>,即使点击<summary> 中的其他位置不会。
编辑 2
这是一个 Firefox 错误,已在版本 67 中修复。
【问题讨论】:
-
这个问题似乎只能在 Firefox 上重现,而不能在 Chrome/Safari 上重现。
-
@rv7 你的意思是它在 IE Edge 上工作还是不工作?
-
不适用于我的 IE Edge v42。
标签: javascript jquery html css firefox