问题:
禁用表格单元格 (
原因:
标准方式不支持直接禁用锚标记 ()。
解决方案:
使用 CSS,你可以禁用链接的指针事件:
a.disabled { pointer-events: none; }
优点:这是具有良好跨浏览器支持的首选方法。
缺点: 仅禁用指针交互,而不禁用键盘导航。
通过设置负tabindex来防止链接获得焦点:
<a href="#" disabled tabindex="-1">...</a>
优点:禁用键盘导航以及指针交互。
缺点: 需要测试与多个浏览器的兼容性。
绑定一个点击处理程序,检查禁用状态并防止默认操作:
$("td > a").on("click", function(e) { if ($(this).is("[disabled]")) { e.preventDefault(); } });
优点:适用于大多数浏览器,具有各种事件处理程序。
缺点:需要 JavaScript 并更多地改变链接的行为
从链接中删除 href 属性:
$("td > a").each(function() { this.data("href", this.attr("href")) .attr("href", "javascript:void(0)") .attr("disabled", "disabled"); });
优点:更直接的解决方案,可以更改链接的功能。
缺点:可能不与所有导航方法兼容链接。
添加一个始终返回 false 的点击处理程序:
$("td > a").attr("disabled", "disabled").on("click", function() { return false; });
优点:功能与之前的方法类似.
缺点:可能会在某些情况下引入内存泄漏或其他问题浏览器。
添加 CSS 样式以直观地指示禁用的链接:
a[disabled] { color: gray; }
包含 aria-disabled="true"可访问性属性:
<a href="#" disabled tabindex="-1" aria-disabled="true">...</a>
以上是如何在不同浏览器中有效禁用 HTML 中的超链接?的详细内容。更多信息请关注PHP中文网其他相关文章!