고유 한 작은 문제가 있습니다. 특정 라디오 단추를 선택하면 컨테이너를 표시하고 숨겨야합니다. 불행히도 내 이벤트 리스너는 선언 될 때 해고되고 이벤트가 실제로 발생하지는 않습니다. 다른 누구도 이런 종류의 문제에 부딪 혔습니까?선언 된 JavaScript 이벤트 리스너가 다시는 발생하지 않습니다.
<!DOCTYPE html>
<html>
<head><title>test</title></head>
<body>
<form name="form">
<input type="radio" name="r1" id="r1_yes" value="yes">
<input type="radio" name="r1" id="r1_no" value="no">
<div id="r1_comments" class="comments">Comments r1</div>
<br />
<input type="radio" name="r2" id="r2_yes" value="yes">
<input type="radio" name="r2" id="r2_no" value="no">
<div id="r2_comments" class="comments">Comments r2</div>
</form>
<script type="text/javascript">
function checkCommentTrigger(element, comments, trigger) {
if (element.value===trigger && element.checked) { comments.style.display="block"; }
else { comments.style.display="none"; }
}
function comments(fieldName, commentsID, triggerValue) {
var t_elements, t_comments, i;
t_elements = document.getElementsByName("fieldName");
t_comments = document.getElementById(commentsID);
t_comments.style.display="none";
for (i=0; i<t_elements.length; i++) {
if (t_elements[i].addEventListener){t_elements[i].addEventListener("click",checkCommentTrigger(this, t_comments, triggerValue),true);}
else {t_elements[i].addEvent('onclick',checkCommentTrigger(this,t_comments,triggerValue));}
}
}
comments("r1","r1_comments","no");
comments("r2","r2_comments","no");
</script>
</body>
</html>
으악, 그보고, 나는 또한 있었다 fieldName에 등을 내 getElementsByName 안의 문자열 ... 감사합니다. Pointy, 생명의 은인. – seanmetzgar