我在slideDown菜單中的鏈接有問題。爲什麼子鏈接不起作用?
鏈接的不可點擊爲什麼?
你可以在這裏看到:JSFiddle
我jQuery代碼是:
$('.links').hide();
$('.header a').click(function(e) {
$(this).next('.links').slideToggle('normal');
e.preventDefault();
});
我在slideDown菜單中的鏈接有問題。爲什麼子鏈接不起作用?
鏈接的不可點擊爲什麼?
你可以在這裏看到:JSFiddle
我jQuery代碼是:
$('.links').hide();
$('.header a').click(function(e) {
$(this).next('.links').slideToggle('normal');
e.preventDefault();
});
您的選擇器.header a
將影響您不想要的.header
中包含的所有錨點。您只需要toggle()
,當單擊一個錨點時,它是.header
的直接子項。
$('.header > a').click(function(e) {
e.preventDefault();
$(this).next('.links').slideToggle('normal');
});
刪除e.preventDefault()
它會阻止默認動作是click()
$('.header a').click(function(e) {
$(this).next('.links').slideToggle('normal');
//e.preventDefault();
});
您使用的e.preventDefault();
會停止即將發生的默認操作,即HREF將頁面移動到新位置。如果您刪除e.preventDefault()
,您的鏈接將再次變爲「活動」。
更新的代碼
$('.header a').click(function(e) {
$(this).next('.links').slideToggle('normal');
});
從jQuery的文檔:http://api.jquery.com/event.preventDefault/
e.preventDefault()
- 如果此方法被調用時,事件的默認動作不會被觸發。例如,點擊的錨點不會將瀏覽器帶到新的URL。
有人可以解釋投票嗎? – ajtrichards 2013-05-13 16:01:18
您正在使用'preventDefault()',它可以防止默認操作。如果你只是想影響的頂級錨,你的選擇更改爲'$(「頭> A」)' – billyonecan 2013-05-13 08:51:15
我用FF 20.0.1 – Evolutio 2013-05-13 08:51:27
刪除'e.preventDefault()'如果你想點擊鏈接 – diEcho 2013-05-13 08:52:03