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

时间:2011-02-12 10:02:51

标签: javascript jquery

当我点击“幻灯片切换”链接时,我的网址从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');
        }
    });
});

5 个答案:

答案 0 :(得分: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');
    }
});

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

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

答案 1 :(得分:0)

slide-up结尾处有一个;在slide-toggle的末尾添加一个。

答案 2 :(得分:0)

我认为,它应该是这样的:

$('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');
        }

        return false;
    });

答案 3 :(得分:0)

像这样:

    $('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');
        }
        return false;
    });

答案 4 :(得分:0)

可能你需要在 $('a#slide-toggle')中添加return false。click() function

$(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');
        }
        **return false;**
    });
});