2012-03-29 36 views
0

我想排序我的網站,所以當我點擊一個錨點鏈接時,它突出顯示標題和它下面的部分。我說得對,但我正在努力解決一些問題。jquery nextuntil過濾多個類

我有一些HTML這樣的:

<p id="pp1" class="Subsubhead">Stuff</p> 
<p>Nonsense</p> 
<p>More</p> 
<p id="pp7" class="Subsubhead">Meow</p> 
<p>Lorem</p> 
<p class="subhead"> 

,我有一些JavaScript,幾乎就像:

function highlight(elemId) { 
    var elem = $(elemId); 

    elem.nextUntil(".Subsubhead").addClass("snaphighlight"); 

    //elem.addClass("snaphighlight"); 
    setTimeout(function() { 
     elem.removeClass("snaphighlight") 
    }, 1000); 
} 

$('#navigation a').click(function (event) { 
    var elemId = '#' + $(this).attr('href').split('#')[1]; 
    highlight(elemId); 
}); 

這個目前並不突出的標題,但它確實突出<p>標籤直到下一個Subsubhead。然而,當下一個p有一個Subhead類時,它會一直高亮顯示我不想要的。有沒有辦法告訴它nextUntil ".subsubhead"&&".subhead"或類似的東西?我的超時時間也不起作用了。我該如何解決這個問題?

回答

1

要應用的類衆多元素,但只能從一個

刪除它試試這個:

function highlight(elemId) { 
    var elem = $(elemId); 
    var highlight=elem.nextUntil(".Subsubhead").addClass("snaphighlight"); 

    //elem.addClass("snaphighlight"); 
    setTimeout(function() { 
     highlight.removeClass("snaphighlight") 
    }, 1000); 
} 

使用##一個jQuery選擇你的語法是無效的,應該只使用一個#

+0

這適用於超時。使用Coldfusion所以使用#會導致問題。這是唯一的原因二。 CF開發人員瞭解。 – Jarede 2012-03-29 11:59:48

+0

我也做CF工作,但發佈服務器代碼和客戶端代碼的混合只會增加混亂,當你所有顯示的是HTML和JavaScript – charlietfl 2012-03-29 14:24:12