【问题标题】:Return false on click event not working [closed]在单击事件不起作用时返回 false [关闭]
【发布时间】:2012-10-17 18:17:33
【问题描述】:

知道为什么这段代码不起作用吗?我已经花了一个小时搜索和测试一些本应简单可笑的东西!我已经尝试使用 return false 和其他答案中建议的其他解决方案,但页面仍然跳到顶部忽略 return false。怎么了?

$('#about a').click(function(e) {
    $('.overlay').fadeTo(300, 0.95);
    $('#about-text').fadeTo(300, 1);
    e.preventDefault();   
});

编辑:这是#about a 的html。可能是脚本中元素的语法有问题?

<div class="projects" id="about"><a href="#">About</a></div>

编辑 2: 经过大量搜索、反复试验,我找不到为什么这不起作用。我决定从#about div 中删除#anchor 链接并直接在div 上应用他的功能,这当然可以正常工作,因为它不再有href。

【问题讨论】:

  • 要么为它制作一个 jsfiddle,要么为自己省去麻烦并用 firebug 调试它。
  • 你用的是什么浏览器?一切似乎都按预期工作:jsfiddle.net/Kxv5Y
  • 尝试将e.preventDefault()作为函数中的第一项放在顶部。
  • 查看您的 HTML 结构并确保一切都符合您的脚本,在这种情况下,放置 e.preventDefault() 不是问题,请在 jsFiddle 示例中寻找。
  • 我们已经多次要求您设置 jsFiddle 或演示页面。 Your code, exactly as you've posted it, works perfectly fine. 其他原因导致您看到的结果。

标签: jquery click return anchor preventdefault


【解决方案1】:

试试:

$('#about a').click(function(e) {
    e.preventDefault();  
    $('.overlay').fadeTo(300, 0.95);
    $('#about-text').fadeTo(300, 1);
     return false;
});

将 e.preventDefault() 放在顶部将确保事件停止。您的 fadeTo 函数可能存在运行时错误。

【讨论】:

  • 如果上面的 fadeTo 也存在运行时错误,则实际上永远不会达到 return false。
  • 试过这个,但它不起作用。该页面仍会转到顶部。我什至用 css 事件替换了两个 fadeTo 动作。但仍然没有变化。
猜你喜欢
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多