在这段代码中我需要把'return false'?

J82*_*J82 2 javascript jquery

当我点击'slide-toggle'链接时,我的网址从mysite.com变为mysite.com/#

有人告诉我,我需要在这里的某个地方放一个"返回假",但我不知道在哪里.有人可以帮助我吗?

$(document).ready(function() {
    $('a#slide-up').click(function () {
        $('.slide-container').slideUp(function(){
            $('#slide-toggle').removeClass('active');
        });
        return false;
    });

    $('a#slide-toggle').click(function() {
        var slideToggle = this;
        if ($('.slide-container').is(':visible')) {
            $('.slide-container').slideUp(function() {
                $(slideToggle).removeClass('active');
            });
        }
        else {
            $('.slide-container').slideDown();
            $(slideToggle).addClass('active');
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

lon*_*day 6

不使用return false而是使用它会更好event.preventDefault.您可以将它放在事件处理程序的最顶层:

$('a#slide-toggle').click(function(e) { // note e added as the function's parameter
    e.preventDefault();

    var slideToggle = this;
    if ($('.slide-container').is(':visible')) {
        $('.slide-container').slideUp(function() {
            $(slideToggle).removeClass('active');
        });
    }
    else {
        $('.slide-container').slideDown();
        $(slideToggle).addClass('active');
    }
});
Run Code Online (Sandbox Code Playgroud)

这具有相同的效果return false,但具有以下优点:

  • 它在语义上更符合逻辑 - 它完成它所说的
  • 你可以把它放在函数的头部,所以它很明显
  • 您可以拥有多个退出点,而无需确保它们全部 return false
  • 如果代码的任何部分导致错误,则仍将阻止默认操作