2011-02-12 58 views
2

當我點擊'滑動切換'鏈接時,我的網址從mysite.com變成mysite.com/#在這段代碼中,我需要把「返回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'); 
     } 
    }); 
}); 
+1

請問您是否可以編輯您的問題以包含語言。謝謝。 – 2011-02-12 10:05:06

回答

6

這將是更好不使用return false但使用代替。你可以在你的事件處理程序的最高層把這個:

$('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
  • 如果你的代碼的任何部分導致錯誤,默認的動作仍然會被阻止
+0

謝謝你有見地的評論/回答! – J82 2011-02-12 10:16:24

0

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

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; 
    }); 
+0

使用空href屬性不會阻止URL的更改,因爲瀏覽器會將其解釋爲「href =」。「`或」href =「/」`。但是,某些瀏覽器可能會將其解釋爲完全沒有「href」屬性,將標記轉換爲書籤定位符而不是鏈接,或完全忽略標記。 – Guffa 2011-02-12 10:17:06

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; 
    }); 
0

也許你需要添加返回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;** 
    }); 
});