ajax를 통해
success:function(data){
.
.
.
output +='<tr>';
output +='<td>변경일</td><td><input type="text" name="ch_date" class="sv_date"/></td>';
output +='</tr>';
$('#hd_'+no+' .test').empty();
$('#hd_'+no+' .test').append(output);
데이터를 출력하고
위에 <input type="text" name="ch_date" class="sv_date"/>
이 부분에 data picker를 적용할려고 하는데;
적용이 안되네요 ㅜㅜ 계속
$(...).datepicker
undifined 라는 오류만 뜨네요 ㅜㅜ
$(document).on('click', '.sv_info', function() {
$('.sv_date').datepicker({
changeMonth: true,
changeYear: true,
nextText:'다음 달',
prevText:'이전 달',
dateFormat:'yy-mm-dd',
dayNamesMin:['월', '화', '수', '목', '금', '토', '일'],
monthNamesShort:['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
monthNames:['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
gotoCurrent: true
});
});
어느쪽을 수정해야 적용할수 있을까요 ㅜㅜ
@뫄뫄잉뿌;;
죄송하지만 다시 한번 호출하라는게 무슨말씀이실까요?;
제가 해본것은;;
페이지가 로딩된 후에 바로 적용되도록해놔서
지식이 딸리다보니 말씀해준것을 이해를 못하네요 ㅜ죄송합니다,
그려내는 부분의 class는 sv_date
datepicker에서 액션을 주는 class 대상은 sv_info
@배강민
무슨 말씀이실까요??
이해가 안되서요;;
on('click', 'sv_info' function(){
의 경우 class가 .sv_info인 것을 클릭하면
$('.sv_date').detepiker({
}}
class='sv_date' 인곳에 달력을 그려주는것 아닌가요?
제가 잘못이해한건가요?
$('.sv_date').datepicker({
})
이렇게 해줘도 에러가 뜨는데;;
append 로 엘레멘트를 추가하고 클릭이벤트를 사용하면 바로 적용될거라 생각 되지만, 적용이 안됩니다.
이는 흡사 클릭이벤트를 사용하겠다고 선언 하지 않고 사용하는 거와 같습니다.
[왜요? 라고 하신다면 직접 찾아 봐주세요. ]
그래서 append가 끝나고 재 호출을 한번 더 하라는 것입니다.
그리고 배강민님 말씀처럼 select 타겟도 잘못 되셨네요.
@kaido
예전에도 ajax호출 후에 클릭이벤트가 되지 않아 on메서드사용하여
해결한적은 있습니다.
밑에처럼 준것에서도 select 타켓이 잘못된건가요?
$(document).on('click', '.sv_info', function() { $('.sv_date').datepicker({ changeMonth: true, changeYear: true, nextText:'다음 달', prevText:'이전 달', dateFormat:'yy-mm-dd', dayNamesMin:['월', '화', '수', '목', '금', '토', '일'], monthNamesShort:['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], monthNames:[
해결을못하니 답답하네요 참 제가 멍청한게 죄이지만
var test = function(data){
$(this).datepicker({
changeMonth: true,
changeYear: true,
nextText:'다음 달',
prevText:'이전 달',
dateFormat:'yy-mm-dd',
dayNamesMin:['월', '화', '수', '목', '금', '토', '일'],
monthNamesShort:['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
monthNames:['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
gotoCurrent: true
});
}
$('#hd_'+no+' .test').append(output);
var t= $('.sv_date');
test(t);
이렇게 append 이후에 호출을 하였는데도
$(this).datepicker에서
$(...).datepicker is not a function이라고만 뜨네요 참
var t값을 console.log(data[0])를 통해 확인해 보니
<input class="sv_date" type="text" name="ch_date">
이렇게나오는걸 확인했네요
저기 class값만가져오면 될것 같은데;
가져오는 방법이 있을까요?
sv_info 라는 달력띄우는 버튼이 따로 있는거라면 제 답변은 무시하셔도 되겠고요.
DOM을 그려내기전에 이벤트를 먹이는 시간차일 수도 있겠네요.
@배강민
실수였네요,,,뷰페이지에
<script src="<?php echo base_url();?>js/jquery-3.1.0.min.js"></script>
<script src="<?php echo base_url();?>js/jquery_ui_1.12.0/jquery-ui.js"></script>
<link rel="stylesheet" href="<?php echo base_url();?>js/jquery_ui_1.12.0/jquery-ui.css">
이걸 넣어준다는걸 깜박했네요 ㅜㅜ...
그런데 문제는 처음에 input 박스클릭했을때는 안나오는데 다른데를 클릭하고나서 다시 input box를 클릭하면 그때 나오는데;;
어느곳을 수정해야되죠;
ajax append 후
$(this).datepicker({ changeMonth: true, changeYear: true, nextText:'다음 달', prevText:'이전 달', dateFormat:'yy-mm-dd', dayNamesMin:['월', '화', '수', '목', '금', '토', '일'], monthNamesShort:['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], monthNames:['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], gotoCurrent: true });다시 호출한번 해보세요~ 저번에 저도 그일로 아마 뒤에 한번더 호출했던걸로 기억해요