javascript - 为什么 jQuery 让我的页面在点击后跳回到顶部?

标签 javascript jquery html css

我有一个关于 jQuery 的一般性问题。

我创建了几个 jQuery 按钮,但我遇到的问题是当您向下滚动页面一半并按下按钮时,页面跳回到顶部,而不是停留在按钮所在的中间?

你怎么能阻止这种情况发生,因为它会让用户感到沮丧?

发生这种情况有什么特别的原因吗?

jsFiddle Example :

$(".comment-here").click(function() {
   $(".comment-form").slideToggle('slow');
});

$(".main-btn.orange").click(function(){
   $(".comment-form").slideUp('slow');
});

最佳答案

您没有阻止默认事件。由于您单击的是 anchor 标记,因此 # 的默认事件只是跳转到文档顶部。

为了防止这种情况发生:

将事件传入函数,并使用preventDefault();

$(".comment-here").click(function(e){
    e.preventDefault();
    $(".comment-form").slideToggle('slow');
})

$(".main-btn.orange").click(function(e){
    e.preventDefault();
    $(".comment-form").slideUp('slow');
})

您也可以使用 return false; 代替,这比仅仅防止默认事件更进一步,它会停止事件 冒泡 直到 parent 元素。

关于javascript - 为什么 jQuery 让我的页面在点击后跳回到顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247721/

相关文章:

java - 将值从 JavaScript 发送到 JSP(使用 jQuery)

javascript - 未从选择标签中获取所选项目

javascript - 将类更改应用于所有 getElementsByTagName - 纯 JavaScript

java - 根据 HttpServletRequest 参数使 HTML 元素可见/不可见

javascript - 使用javascript在新窗口中打开PDF字符串

javascript - 如何在不破坏框架的情况下将 jQuery 添加到框架中

javascript - AJAX 加载后调用 Javascript 函数

css - 更改 Sublime Text 3 中的默认 HTML 标签

javascript - 如何根据多个对象属性有条件地删除数组中的对象?

javascript - 如何从 Ember JS 的子路由访问父 Controller ?