簡體   English   中英

我需要在這段代碼中的什么地方放置“ return false”?

[英]Where in this code do I need to put 'return false'?

當我點擊“幻燈片切換”鏈接時,我的網址從mysite.com轉到mysite.com/#

有人告訴我我需要在這里的某個地方放置“ return false”,但我不確定在哪里。 有人可以幫我嗎?

$(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而是使用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
  • 如果您的代碼的任何部分導致錯誤,仍將阻止默認操作

slide-up末端有一個; slide-toggle的末尾添加一個。

我認為應該是這樣的:

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

像這樣:

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

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM