在哪里放置'return false;'在jQuery函数中纠正页面跳转问题

时间:2010-05-07 15:46:10

标签: jquery return

最初我正在寻找显示/隐藏页面跳转问题的答案。 在这里找到答案:link with href="#" scrolls page to top when used with jquery slidetoggle,我需要了解将return false放在以下代码中的位置:

toggleDetail : function(obj) {
    $(obj).parent().parent().next().toggleClass('hide');
    $(obj).text() == 'Show' ? $(obj).text('Hide') : $(obj).text('Show');
},

这是我对show / hide的调用。 'href =“javascript:void(0);”'用于阻止页面跳转,我还需要'返回false'吗?

<a href="javascript:void(0);" onclick="VSASearch.toggleDetail(this)">Show</a>

我尝试在分号前的每个$(obj)行的末尾添加'return false',但事实并非如此。

3 个答案:

答案 0 :(得分:6)

你只需要在onclick处理程序上返回false。如果onclick返回false,则将停止回发/页面重新加载。

<a href="#" onclick="VSASearch.toggleDetail(this);return false;" />

或者您可以按如下方式返回函数的结果:

toggleDetail : function(obj) {
    $(obj).parent().parent().next().toggleClass('hide');
    $(obj).text() == 'Show' ? $(obj).text('Hide') : $(obj).text('Show');
    return false;
},

<a href="#" onclick="return VSASearch.toggleDetail(this);" />

答案 1 :(得分:2)

你想从onclick hander

返回false
<a onclick="VSASearch.toggleDetail(this); return false">Show</a>

更好的是,使用不显眼的javascript并在$()函数中分配事件处理程序:

<a id="show">Show</a>

....

$(function() {
 ....
 $("#show").click = function() {
     VSASearch.toggleDetail(this);
     return false;
 }

答案 2 :(得分:1)

toggleDetail : function(obj) {
    $(obj).parent().parent().next().toggleClass('hide');
    $(obj).text() == 'Show' ? $(obj).text('Hide') : $(obj).text('Show');
    return false;
},