停止onClick以在jQuery事件之后返回页面顶部

停止onClick以在jQuery事件之后返回页面顶部,jquery,onclick,return,Jquery,Onclick,Return,我在这里读了很多关于这个问题的帖子,都有很好的解决方案,但是,在我的情况下,没有一个是可行的 这是我的JS: $(document).ready(function(){ $("a.tab").click(function () { $(".active").removeClass("active"); $(this).addClass("active"); $(".inside ul").fadeOut(); $(".ins

我在这里读了很多关于这个问题的帖子,都有很好的解决方案,但是,在我的情况下,没有一个是可行的

这是我的JS:

$(document).ready(function(){
    $("a.tab").click(function () {
        $(".active").removeClass("active");
        $(this).addClass("active");
        $(".inside ul").fadeOut();
        $(".inside ul").fadeIn();
        var content_show = $(this).attr("title");
        return false;
        e.preventDefault();
    });
    $("a.tab, h4").FontEffect({
        outline: true
    })
});
我做错了什么

更新:

谢谢你的帮助。现在我有以下几点,尽管它仍然不起作用:

$(document).ready(function(){
        $("a.tab").click(function(e) {
            e.preventDefault();
            $(".active").removeClass("active");
            $(this).addClass("active");
            $(".inside ul").fadeOut();
            $(".inside ul").fadeIn();
            var content_show = $(this).attr("title");
            return false;
        });
        //$("a.tab, h4").FontEffect({
        //  outline: true
    //  })
    });
锚定标签:

<a href="#" title="content_1" class="tab active">New Videos</a>


问题是在阻止默认操作之前返回(
e.preventDefault();
),请尝试以下操作:

    $("a.tab").click(function (e) {
        e.preventDefault();
        $(".active").removeClass("active");
        $(this).addClass("active");
        $(".inside ul").fadeOut();
        $(".inside ul").fadeIn();
        var content_show = $(this).attr("title");
        return false;
    });
在锚定标签上,确保href的格式为:

href='javascript:void(0);'
尝试:

在代码中缺少
事件参数变量
,在本例中,该变量将是
e

如果您正在使用preventDefault()方法,则无需使用return false

在线演示:

更新

滚动跳转不是由点击链接引起的,而是因为当ul隐藏时,
$(“.inside ul”)。fadeOut()
页面高度变小,因此浏览器滚动到顶部

通过使用
.animate({opacity:0},500)
在不隐藏淡出效果的情况下进行淡出,可以修复此问题

$("a.tab").click(function (e) {
    ...
    $(".inside ul").animate({opacity:0},500);
    $(".inside ul").fadeIn();
    ...
    e.preventDefault();
});
它可能像“e.preventDefault();”这样简单,但却在错误的线路上

$(document).ready(function(){
        $("a.tab").click(function () {
            e.preventDefault();
            $(".active").removeClass("active");
            $(this).addClass("active");
            $(".inside ul").fadeOut();
            $(".inside ul").fadeIn();
            var content_show = $(this).attr("title");
            return false;

        });
        $("a.tab, h4").FontEffect({
            outline: true
        })
    });

你不需要包括事件变量,我也不相信有一个click@neal不客气,试试这个演示,把“函数(e){”中的“e”去掉看看它是否有效:你必须在函数参数中声明它。@amosrivera,可能很好。但我认为这也与在函数中阻止defauld有关space@neal:如果要访问事件对象(即
e.preventDefault
)是的。但是,正如您在回答中所说的那样……该调用也需要是第一个调用,或者至少在
return false
语句之前。所以你们都有部分答案:-)修复了我的答案,包括
(e)
$(document)。ready(function(){$(.tab”)。单击(function(e){.e.preventDefault();$(.active”)。removeClass(“active”)$(this.addClass(“active”);$(.inside-ul”).fadeOut();$(.inside-ul”).fadeIn();var content_show=$(this.attr(“title”);return false;});//$(.tab,h4”).fontfeffect({//outline:true/});@SSHUC,请查看我对您的问题的评论。@SSHUC不要发布代码(长代码)在评论中,用更新编辑您的原始Q。或者,如果您找到了正确的答案,请将其标记为,以便在单击链接时页面继续返回顶部。锚定标记是什么样子的?@SSHUC:您确定您的事件处理程序正在被触发……addClass和fade是否按照预期发生?@prodigitalson是的,everything发生得很好,但一旦发生,页面就会返回顶部
$(document).ready(function(){
        $("a.tab").click(function () {
            e.preventDefault();
            $(".active").removeClass("active");
            $(this).addClass("active");
            $(".inside ul").fadeOut();
            $(".inside ul").fadeIn();
            var content_show = $(this).attr("title");
            return false;

        });
        $("a.tab, h4").FontEffect({
            outline: true
        })
    });