2014-11-25 71 views
0

我用下面的代碼,以顯示其工作正常,除了一個事實/隱藏的div它一直跳下,當我點擊顯示/隱藏...jQuery的:返回false問題

的JS提琴低於: http://jsfiddle.net/w3dwu0r2/1/

儘管這確實顯示了代碼,但它並沒有真正突出顯示問題,因爲在真實環境中它開始跳躍(我已將所有腳本排除在等式之外) - 也許是jQuery高手可以協助,我試着加入return false; - 例如

$('.nav-toggle').click(function(){ 

     var collapse_content_selector = $(this).attr('href'); 
return false; 

但這殺死了劇本,我已經試過各種行吟詩人rplaces,但會導致腳本不再顯示/隱藏div的,希望有人能幫助。

回答

1

試用event.preventDefault();。下面是代碼

$(document).ready(function() { 
    $('.nav-toggle').click(function (e) { //<===== pass the event 
     e.preventDefault();    //<===== prevent the default event from execution 
     //get collapse content selector 
     var collapse_content_selector = $(this).attr('href'); 
     //make the collapse content to be shown or hide 
     var toggle_switch = $(this); 

     $(collapse_content_selector).toggle(function() { 
      if ($(this).css('display') == 'none') { 
       //change the button label to be 'Show' 
       toggle_switch.html('Show'); 
      } else { 
       //change the button label to be 'Hide' 
       toggle_switch.html('Hide'); 
      } 
     }); 
    }); 

}); 

FIDDLE DEMO

+0

謝謝你,會做的! :) – user2736203 2014-11-25 14:50:52

0

當然它的跳躍,因爲你使用普通的美女主播與jumppoints(#collapse2)。

我更喜歡不使用href-attribute進行那種數據傳輸。 如果你留在錨標記,只需使用

<a href="javascript: return false;" data-toggle="#collapse1" class="nav-toggle">Show</a> 

,改變你的javscript到:

var collapse_content_selector = $(this).attr('data-toggle');   

如果你不喜歡在HREF的JavaScript,只要使用按鈕標籤

<button data-toggle="#collapse1" class="nav-toggle">Show</button> 

的作品就像一個魅力和不跳:-)

第三SOLU重刑當然是增加

e.preventDefault(); 

在你的js方法,像在思考他的回答不同的規定