2014-02-08 31 views
0

嗨,我不是最好的jquery夥計,今天我試圖實現一個簡單的切換練習。使用跨度中的觸發器切換表格的一部分...Jquery切換後太多

我有一張表,我想在'td'內使用一個跨度觸發切換。我想直到類的頭另一行jQuery的發現切換到當前行下的所有行...

jQuery代碼:

$('.meer').click(function(){ 
    $(this).parent().find('span.meer').text(function(_, value){return value=='-'?'+':'-'}); 
    $(this).parents().nextUntil('tr.header').toggle(100, function(){ 
    }); 
}); 

在第三行的代碼爲headbreaker我。 +我不確定第一個選擇器('.meer')|| (「跨度.meer」)..

Fiddle: http://jsfiddle.net/95nWh/ 

的問題是,在表後一切變得切換後顯示無... 請檢查出的小提琴

有人能幫助我嗎?

回答

1

問題是.nextUntil在離開表格元素之後仍在繼續。該解決方案正在改變$(this).parents().nextUntil('tr.header').slideToggle(100, function() {});$(this).parents().nextUntil('tr.header,div').slideToggle(100, function() {});

http://jsfiddle.net/jg7UG/1/

編輯:當初鏈接錯誤

+0

謝謝。這是營養... –

1

要調用$(this).parents(),不帶參數。函數.parents()旨在接收一個選擇器作爲參數。 https://api.jquery.com/parents/

你想要做的是找到跨度的直接tr祖先。有這.closest()http://api.jquery.com/closest/

所以,你必須更換此:

$(this).parents().nextUntil('tr.header').toggle(100, function(){ 
}); 

有了這個:

$(this).closest("tr").nextUntil('tr.header').slideToggle(100, function(){ 
}); 

小提琴:http://jsfiddle.net/_abl/YgKcN/