【问题标题】:How to prevent js scroll to top on click如何防止js在点击时滚动到顶部
【发布时间】:2015-11-12 09:21:04
【问题描述】:

我遇到了我认为是 javascript 或 jQuery 问题的问题。 我已经构建了一个 CSS 复选框标签,单击该标签会在页面上显示一个表单。

我遇到的问题是,当点击标签时,如果用户在点击之前向下滚动,页面会滚动到顶部。

我认为这是一个 JS 问题,可能来自我正在使用的主题,但我的 JS 技能几乎没有,所以我非常感谢任何帮助。

您可以在此处查看该页面: http://urlgone.com/5504c5/

点击“注册”蓝色文本时会出现“滚动到顶部”。

我已尝试按照another post 中的建议添加此 JS 代码,但这并没有解决问题。

$("#slidingFormBtnId").click(function(e) {
    e.preventDefault();
    // Do your stuff
});

【问题讨论】:

  • 检查你的控制台~"Uncaught TypeError: $ is not a function"
  • @Phil 那是因为 JQuery 不包括在内,这不是代码的问题
  • @Markasoftware 您认为这不会阻止 OP 的代码工作吗?
  • 好吧,他的真实代码可能包含 JQuery,所以是的,我认为这不会导致任何问题
  • @Markasoftware 我正在查看他的网站,jQuery 在那里,但由于某种原因我还没有看到,$ 没有定义。 OP 应该只使用jQuery('#slideingFormBtnId').click(...

标签: javascript jquery html css scroll


【解决方案1】:

我认为您的问题在于您试图在 Wordpress 中错误地使用 jquery。您的控制台状态为 $ is not a function

您可以查看此页面以获得一些帮助:https://digwp.com/2011/09/using-instead-of-jquery-in-wordpress/ 但基本上您应该将您的 jquery 包装在:

jQuery(document).ready(function( $ ) {
 // code here
}

【讨论】:

  • 谢谢!最终成功添加代码后,我遇到了另一个问题——由于.preventDefault(),复选框不再被切换,所以我需要添加另一行代码来解决这个问题。现在效果很好,代码如下所示:jQuery(document).ready(function( $ ) { $("#slidingFormBtnId").click(function(e) { e.preventDefault(); $('#toggleForm').trigger('click'); }); });
猜你喜欢
  • 2020-02-11
  • 1970-01-01
  • 1970-01-01
  • 2018-09-15
  • 2016-07-25
  • 1970-01-01
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多