在Chrome/WebKit/Safari中停用锚点

Ste*_*sek 7 html safari jquery webkit google-chrome

请考虑以下代码:

$("a").attr("disabled", "disabled");
Run Code Online (Sandbox Code Playgroud)

在IE和FF中,这将使锚点无法点击,但在基于WebKit的浏览器(谷歌浏览器和Safari)中,这没有任何作用.disabled属性的优点在于它很容易被删除,并且不会影响href和onclick属性.

您对如何获得所需结果有任何建议吗?答案必须是:

  • 很容易恢复,因为我想在运行AJAX调用时禁用表单输入控件.
  • 必须在IE,FF和WebKit中工作

Nea*_*all 7

我假设你有一个绑定到这些锚元素的onclick事件处理程序.只需让您的事件处理程序检查"已禁用"属性,并在设置时取消该事件.您的事件处理程序看起来像这样:

$("a").click(function(event){
  if (this.disabled) {
    event.preventDefault();
  } else {
    // make your AJAX call or whatever else you want
  }
});
Run Code Online (Sandbox Code Playgroud)

您还可以设置样式表规则以更改光标.

a[disabled=disabled] { cursor: wait; }
Run Code Online (Sandbox Code Playgroud)

编辑 - 简化了评论中建议的"禁用"检查.