질문이 하나 있습니다. 가능한 삭제 <span>
요소가 javascript append?자바 스크립트 추가/제거
추가 된 스팬을 제거하려고하면 아무 일도 일어나지 않습니다. 이처럼
는 :
<script type="text/javascript">
$(document).ready(function(){
$('#SelectBoxData span').click(function(){
var StatusID = this.id;
var StatusIDSplit = StatusID.split("_");
var StatusText = $('#SelectBoxData #' + StatusID).text();
$("#SelectBox").append('<span id=' + StatusID + '>' + StatusText + '</span>');
$("#SelectBoxData #" + StatusID).remove();
InputValue = $("#StatusID").val();
if(InputValue == ""){
$("#StatusID").val(StatusIDSplit[1]);
}
else{
$("#StatusID").val($("#StatusID").val() + ',' + StatusIDSplit[1]);
}
});
$('#SelectBox span').click(function(){
var StatusID = this.id;
$("#SelectBox #" + StatusID).remove();
});
});
</script>
<div id="SelectBoxBG">
<div id="SelectBox"><div class="SelectBoxBtn"></div></div>
<div id="SelectBoxData">
<span id="StatusData_1">Admin</span>
<span id="StatusData_2">Editor</span>
<span id="StatusData_4">Test 1</span>
<span id="StatusData_6">Test 2</span>
</div>
<input type="hidden" id="StatusID" />
</div>
제발 도와주세요.
감사합니다.
당신이 자바 스크립트의 여러 요소에 동일한 ID를 할당 할 수 없습니다 : 이벤트 핸들러 동적 요소를 추가 할 반응 할 경우, 당신은
.on()
기능을 사용하여, event delegation라는 기술을 사용합니다. –FYI,'var StatusID = this.id; $ ("# SelectBox #"+ StatusID) .remove();'는 이미 'this'가 참조하고있는 요소를 선택합니다. 요소에 대한 참조가 이미있는 경우 다시 요소를 검색 할 필요가 없습니다! 이것은 훨씬 간단합니다 :'$ (this) .remove()'. –