2015-01-16 58 views
0

道歉,如果這已被問及之前。jquery更改(this).parent的狀態在無線電選擇

我有一個腳本,當選中複選框時,它會從父級添加/刪除一個類。工作正常。

但是,當我將複選框更改爲無線電(在腳本和HTML中)時,腳本僅將該類添加到父級 - 當選擇另一個無線電時,它不會將其刪除。

對不起,我是非常新的JS,並不能解決這個問題。

Fiddle here http://jsfiddle.net/RussellJones/Lh1ymzax/1/ 

而複選框的自定義類是基於這個codepen,這就是爲什麼HTML格式化的原因。 http://codepen.io/lavoiesl/pen/rjcIx

感謝您給予的任何幫助!

+1

請務必在您的問題中發佈您的代碼。 – j08691

+0

對不起!我是新來的,如果我錯誤地處理它,我很抱歉。 –

回答

2

您可以使用.siblings()找到兄弟姐妹並刪除他們的班級。還有兩件事:

1)而不是使用.parent().parent().parent().,您可以簡單地使用.closest()並通過您定位的類。這將通過DOM向上遍歷並找到您要查找的class。它也仍然會如果添加另一名家長到您的HTML

2)的工作,你不需要一個else語句現在,因爲你會從其他.selectable-row上點擊

$(document).ready(function() { 
    $('input:radio').change(function(){ 
    if($(this).is(":checked")) { 
     $(this).closest(".selectable-row").addClass("selected-row").siblings(".selectable-row").removeClass("selected-row"); 
    } 
    }); 
}); 

FIDDLE在去除類

正如Jack指出的那樣,您可以通過在您的CSS中將overflow設置爲autohidden.selectable-row進行更正。更新我的小提琴來反映。

+0

您可能還想將'overflow:auto;'添加到'.selectable-row'。看起來在這個例子中有一個「浮動」問題。 – Jack

+0

是的好電話。甚至沒有注意到,哈哈我更新了我的帖子 – jmore009

+0

非常感謝大家。你是一個偉大的小社區:) –