라디오 단추 선택기를 사용하여 표를 구현하려고합니다. 라디오 버튼을 클릭하면 행이 다른 색으로 설정됩니다. 또한 그리드에서 라디오를 선택하면 이전에 선택한 라디오 버튼이 있는지 확인하여 색상 세트를 변경할 수 있습니다. 내가 전역 변수에 대한 종속성을 제거 할 수 방법마지막으로 클릭 한 라디오 버튼을 알기 위해 전역 변수에 저장하는 것을 방지하려면 어떻게해야합니까?
<script type="text/javascript">
var lastSelectedId = '';
function rowSelected(rdoButton) {
if (rdoButton.id != lastSelectedId) {
rdoButton.parentNode.parentNode.origClassName =
rdoButton.parentNode.parentNode.className;
rdoButton.parentNode.parentNode.className = 'rowSelected';
if (lastSelectedId != '') {
var lastRadioButton = document.getElementById(lastSelectedId);
lastRadioButton.parentNode.parentNode.className =
lastRadioButton.parentNode.parentNode.origClassName;
}
}
lastSelectedId = rdoButton.id;
}
</script>
<table>
<tr class="rowOdd">
<td>
<input type="radio" name="rdoGrpName" id="rdoId1" onclick="rowSelected(this);" />
</td>
<td>Blah</td>
</tr>
<tr class="rowEven">
<td>
<input type="radio" name="rdoGrpName" id="rdoId1" onclick="rowSelected(this);" />
</td>
<td>Blah</td>
</tr>
</table>
궁금 선택된 항목이있는 경우에 추적 할 수 lastSelectedId? 내 초기 아이디어는 본문 개체의 더미 변수에 저장하는 것입니다. 이것을 사용하십시오.
function rowSelected(rdoButton) {
var mainBody = document.getElementByNames('body');
if (rdoButton.id != mainBody[0].lastSelectedId) {
// ....
}
}
이것이 올바른 전략인지 궁금합니다. 또한 코드를 실제로 방해하지 않으려면 onload에 대한 이벤트 처리기를 추가하여 전역 변수를 초기화해야합니다.
예, 좋을 것입니다. 이전에 모든 라디오 버튼을 선택했는지 확인하기 위해 항상 모든 라디오 버튼을 반복해야합니다. 라디오 버튼을 클릭 할 때 이전에 선택된 라디오 버튼이 무엇인지 알 수있는 좀 더 우아한 방법이 있는지 궁금합니다. – Nap