【问题标题】:removeAttr("href") on anchor also removed text color锚点上的 removeAttr("href") 也删除了文本颜色
【发布时间】:2011-07-29 00:43:26
【问题描述】:

我有一个使用 JQuery 和 JQuery UI 的网站。

对于某些链接,我不想使用 JQuery UI 主题的颜色,所以我使用自己的 css 覆盖。

在我使用 $("#a_about").removeAttr("href") 从锚点中删除 href 之前,这一切都有效(这样链接实际上不起作用,我只想抓住点击动作) 令我惊讶的是,它还删除了我的 css 应用的颜色,并返回到 JQuery UI Theme 之前应用的颜色。

我尝试更改应用颜色的元素(锚本身、父容器等),但没有任何帮助。 谢谢...

【问题讨论】:

  • 可以发一些html代码吗?

标签: javascript jquery css jquery-ui jquery-selectors


【解决方案1】:

代替:

$("#a_about").removeAttr("href")

用途:

$("#a_about").attr("href","javascript:;")

【讨论】:

    【解决方案2】:

    这是因为在某些浏览器上,没有属性 href 的锚点 a 被视为普通文本。所以尝试将href 更改为javascript:; 而不是删除它。

    【讨论】:

    • 这将滚动回页面顶部。
    • 我想我们正在尝试解决changing the text color的问题?
    • 我会假设一个问题的修复引入了另一个问题是不可取的。
    【解决方案3】:

    不要触摸href。 Prevent the default action 改为在事件处理程序中。

    这样,如果有人(例如,中键单击)链接将继续工作。

    【讨论】:

    • 但也许他不希望人们认为它通向某个地方,而事实并非如此?
    • 它确实会导致某个地方,如果它没有,那么它首先就不会有 href。
    • 我不希望中键起作用。我需要有 SEO 的 href,但实际上我在打开的对话框中显示相同的内容。
    • 打破用户期望通常是个坏主意,如果用户想在新标签页中阅读内容,为什么要阻止他们?
    【解决方案4】:

    没有href 的锚并不是真正的链接。正如其他人所说,将其设置为 # 并“取消”点击,也有:

    $("#a_about").attr("href", "#").click(function() { return false; });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-29
      • 2015-11-07
      • 1970-01-01
      • 2013-08-28
      • 2020-08-14
      • 2017-10-18
      • 2019-09-19
      • 1970-01-01
      相关资源
      最近更新 更多