몇 가지 관련 질문이 이미이 사이트와 다른 곳에 있지만 어떤 답도 내 상황에 적용되지 않는 것으로 보입니다. HTML에 여러 개의 라디오 버튼이 있습니다.jQuery : dom 객체에 동적으로 이벤트 바인딩
<input type="radio" name="b1" value="aa"> aa<br>
<input type="radio" name="b1" value="ab"> ab<br>
<input type="radio" name="b1" value="ac"> ac<br>
<input type="radio" name="b2" value="ba"> ba<br>
<input type="radio" name="b2" value="bb"> bb<br>
<input type="radio" name="b2" value="bc"> bc<br>
<script type="text/javascript">
var PK = {
modes: ["b1", "b2"],
init: function() {
// attach actions to radio buttons
for (var key in this.modes) {
var mode = this.modes[key];
$("input[name='" + mode + "']").bind(
"change",
function() {
PK[mode]($("input[name='" + mode + "']:checked").val());
}
);
}
},
b1: function(val) { .. do something .. },
b2: function(val) { .. do something else .. },
};
$(document).ready(function() {
PK.init();
});
</script>
위의 기능이 전혀 작동하지 않습니다. .bind 대신 .live를 시도했는데 예상대로 작동하지 않습니다. 사실, 위의 두 가지 모드는 모드의 마지막 항목 인 "b2"에 작업을 바인딩합니다. 즉, b1 또는 b2 버튼의 값을 변경하더라도 함수 PK.b2()가 실행됩니다. 모드 엔트리를 뒤집 으면 마지막 엔트리가 값을 취합니다. 어떻게해야 성공할 수 있습니까?