首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript链接在Chrome中有效,但在Firefox中不起作用

JavaScript链接在Chrome中有效,但在Firefox中不起作用
EN

Stack Overflow用户
提问于 2013-06-05 05:03:00
回答 2查看 76关注 0票数 0

在我的Rails项目中,我有一个HTML文件

代码语言:javascript
复制
<a href='#' id="show_advanced">Show advanced options</a>

然后在JavaScript/JQuery中

代码语言:javascript
复制
  jQuery("#show_advanced").click(function() { // if link is clicked
      event.preventDefault(); // don't go to another page
      if (jQuery('.advanced_option').is(':hidden')) { // if it is hidden, slide down
        jQuery('.advanced_option').slideDown();
        jQuery("#show_advanced").html("Hide advanced options");
      } else { // if not, slide up
        jQuery('.advanced_option').slideUp();
        jQuery("#show_advanced").html("Show advanced options");
      }
  });

它显示表单的高级选项。在Chrome中,这很好用。但在FireFox中,链接只是将我带到页面.../#,这是不正确的。我怎么才能修复它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-05 05:16:56

我假设你没有阻止锚标签的默认行为。如果您在页面http://example.com/index.html上,并且有一个包含hash +文本的锚点,那么该链接将把用户带到包含id文本的元素。

代码语言:javascript
复制
<a href='#end'>Click Me!</a>
...
<div id='end'>content</div>

如果要阻止浏览器执行此标准行为,则需要使用事件的preventDefault函数。关键是将事件传递给回调函数:

代码语言:javascript
复制
jQuery("#show_advanced").click(function(event) {
  event.preventDefault();
  ...
}

回调声明中缺少事件参数!

票数 2
EN

Stack Overflow用户

发布于 2013-06-05 05:05:17

您实际上不需要href='#‘。只需将其作为锚点。

代码语言:javascript
复制
<a id="show_advanced">Show advanced options</a>
<script> 
    $("#show_advanced").click(function () {
        console.log("clicked");
    });
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16927419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档