2014-11-25 99 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方法,像在思考他的回答不同的规定