解決方案:jQuery:僅在父鏈接上使用preventDefault
找到了解決方案。
二手parentNode:
$('.skaftetopmenu-li > a').click(function(e) {
e.preventDefault();
var subid = $(this.parentNode).attr('id');
if (subid !="forsidemenu"){
var str = $('#submenu-content-'+subid).html();
if ($.trim(str) == ""){
$('.submenu-content', this.parentNode).load('http://' + skafte.base_url + '/inc/top-menu-subs/'+subid+'_submenu.html');
}
}
});
我有這樣的菜單:
<ul>
<li class="parent">
<a href="url">Link title parent</a>
<ul>
<li><a href="url">Link title child</a></li>
</ul>
</li>
</ul>
我試圖jQuery中的以下內容:
$('.parent').click(function(e) {
e.preventDefault();
});
然而,這將禁用所有整個菜單結構中的元素即我只想禁用父鏈接。那些在「ul li」中,而不是「ul ul li」中的鏈接,但我無法弄清楚我是如何搜索和搜索的。所以請幫助我!
編輯:謝謝你的答案。我想我會簡化我的代碼,但實際上並沒有使我受益。因此,繼承人的實際代碼我使用:
$('.skaftetopmenu-li').click(function(e) {
var subid = $(this).attr('id');
if (subid !="forsidemenu"){
var str = $('#submenu-content-'+subid).html();
if ($.trim(str) == ""){
$('.submenu-content', this).load('http://' + skafte.base_url + '/inc/top-menu-subs/'+subid+'_submenu.html');
}
}
});
和HTML:
<li class="skaftetopmenu-li" id="priser">
<a href="http://<?php echo DOMAIN?>/priser.php">Priser & Sortiment</a>
<div class="submenu-content" id="submenu-content-priser"></div>
</li>
如果我嘗試做你的建議,並將其設置爲:
$('.skaftetopmenu-li > a').click(function(e) {
e.preventDefault();
一點也沒有't work ..
考慮更改您的選擇,以點帶錨點標籤而不是LI:$('。parent a') – 2013-03-14 19:05:02
您是否試過'$('。parent a')。click(function(e){ e.preventDefault(); });'? – Sven 2013-03-14 19:05:04