2013-03-07 90 views
0

對不起..我跑了幾十個問題是這樣,但他們都不似乎幫了我:(防止HREF =#與jQuery跳轉到頂部

我使用切換腳本,但我每次都!?點擊腳本的鏈接它切換,但它也跳轉到頁面頂部的任何想法這裏是代碼:

<a href="" id="button2">Read More…<a> 
<div id="hidden_content2" style="display:none;"> 
<p>bla bla</p> 
</style> 
</div> 
<script> 
$(document).ready(function() { 
    $("#button2").toggle(
     function() { 
     $(this).text('Hide Content…'); 
     }, 
     function() { 
     $(this).text('Read More…'); 
     } 
    ).click(
     function() { 
     $("#hidden_content2").slideToggle("slow"… 
     } 
    ); 
}); 
</script> 

回答

0

使用:JavaScript:void(0); in href

<a href="jJavaScript:void(0);" id="button2">Read More…<a> 
<div id="hidden_content2" style="display:none;"> 
<p>bla bla</p> 
</style> 
</div> 
<script> 
$(document).ready(function() { 
$("#button2").toggle(function() { 
$(this).text('Hide Content…'); 
}, function() { 
$(this).text('Read More…'); 
}).click(function(){ 
$("#hidden_content2").slideToggle("slow"… 
}); 
}); 
+0

哎呀!呸... !!! – 2013-03-07 12:25:18

+0

?什麼 !!!!!!!!!!!!!!! – supersaiyan 2013-03-07 12:30:30

+0

閱讀http://stackoverflow.com/a/2479904/560648和http://stackoverflow.com/questions/134845/href-attribute-for-javascript-links-or-javascriptvoid0(忽略頂級答案,因爲它是錯誤的)。 – 2013-03-07 12:31:52

2

阻止事件的默認操作注意事項那toggle事件方法已被棄用,您可以使用text方法的回調函數。

$(document).ready(function() { 
    $("#button2").click(function (event) { 
     event.preventDefault(); 
     $(this).text(function (i, text) { 
      return text == 'Hide Content…' ? 'Read More…' : 'Hide Content…' 
     }); 
     $("#hidden_content2").stop().slideToggle("slow"); 
    }); 
}) 
+0

謝謝,但沒有奏效!我不知道該怎麼做!我使用themeforest的級聯html模板 – user2144097 2013-03-07 12:36:32

+0

@ user2144097您是否在控制檯上看到任何錯誤? – undefined 2013-03-07 12:38:45

3

return false從您的點擊處理函數。這可以防止鏈接的默認行爲。


你也有一個錯字在點擊處理程序:

$("#hidden_content2").slideToggle("slow"… 

應該是:

$("#hidden_content2").slideToggle("slow"); 

這將打破你的處理程序(包括return false),直到固定。

+0

謝謝,但沒有任何工作!我不知道該怎麼做!我使用themeforest的級聯html模板 – user2144097 2013-03-07 12:36:11

+0

「沒有任何工作」根本不是一件有用的事情。請向我們提供您的調試和分析結果。 – 2013-03-07 12:39:36

+0

我已經嘗試了答案中給出的每一個解決方案,但它一直跳到頂部。即使當我刪除href =「」 – user2144097 2013-03-07 12:41:30

0

可以使用的preventDefault,例如:

.click(function(e){ 
    e.preventDefault(); 
    $("#hidden_content2").slideToggle("slow"… 
}); 

或者,你可以只使用SPAN或DIV而不是一個錨標記,併爲其分配一個click()的事件,因爲它似乎你實際上並不需要使用錨標籤。

+0

它發生,即使當我刪除href =「」 – user2144097 2013-03-07 12:39:24

+0

你可以把一個jsfiddle例子發生了什麼? – 2013-03-07 12:48:47

+0

多數民衆贊成在奇怪。當我把代碼放在jsfiddle(http://jsfiddle.net/ZV7fD/)或簡單的立場上alnoe html cript不起作用,但是當我在themeforest的級聯模板中打開它時,它確實與wpk跳到頂部問題 – user2144097 2013-03-07 13:25:44

0

首先,你爲什麼要使用錨鏈接。它不鏈接到任何東西,所以它應該是一個鏈接?你不能只使用普通的div,並將光標設置爲CSS指針?如果你這樣做,你不需要防止點擊空鏈接的默認行爲。

如果你保留鏈接,你有兩個選擇。

$('#button2').toggle(function(event) { 
    event.preventDefault(); 
}); 

$('#button2').toggle(function() { 
    return false; 
}); 
+0

它發生,即使當我刪除href =「」 – user2144097 2013-03-07 12:39:48

0

使用:
只是一個豆蔻更新在你的代碼

<a href="#" id="button2">Read More…<a> 

<div id="hidden_content2" style="display:none;"> 
    <p>bla bla</p> 
</div> 

<script type="text/javascript"> 
$(document).ready(function() { 

    $("#button2").toggle(function() { 

     $(this).text('Hide Content…'); 

     }, function() { 

      $(this).text('Read More…'); 

    }).click(function(){ 

     $("#hidden_content2").slideToggle("slow"); 
     return false; 

    }); 

}); 
</script> 
+0

does not work ..「閱讀更多」在頁面加載顯示了一秒,然後消失 – user2144097 2013-03-07 13:44:29

相關問題