해달과 조개
어린해달 / 2017. 4. 5. 17:38 / IT/jquery

오늘의 이슈는 동적으로 생성된 객체에 이벤트를 주어야 하는데, jQuery에서 객체를 인식하지 못하여 동작을 하지 않는 것!

우선 없는 객체이기때문에 평소처럼 $(객체접근자)를 사용하지 않고 $(document)를 사용!!

그리고 객체에 생명을 불어 넣어줄 on 함수를 이용하면 간단히 사용 할 수 있다.

sortable이나 draggable 같은 jquery ui함수도 on 함수 안에서 사용 하면 바로 동작!!

$(document).on(발생시킬이벤트(ex. click),  객체접근자, function(){
     //   이벤트 발생시 발생시킬 내용
     //  ex. sortable
    $(this).sortable({});
});


'IT > jquery' 카테고리의 다른 글

jquery swiper  (0) 2016.11.28
특정영역 웹페이지 프린트  (0) 2016.11.26
Tree 구조 체크박스 선택  (0) 2016.11.24
테이블 행,열 병합  (0) 2016.11.19
여러개 input 박스 초기화  (0) 2016.11.06
어린해달 / 2016. 11. 28. 14:57 / IT/jquery

http://on-ze.com/archives/4213


** 일본 웹페이지보고 추후 다시 작성예정

'IT > jquery' 카테고리의 다른 글

동적생성객체 이벤트 주기! jquery on 사용!  (0) 2017.04.05
특정영역 웹페이지 프린트  (0) 2016.11.26
Tree 구조 체크박스 선택  (0) 2016.11.24
테이블 행,열 병합  (0) 2016.11.19
여러개 input 박스 초기화  (0) 2016.11.06
어린해달 / 2016. 11. 26. 23:30 / IT/jquery
// 출력할 내용이 담긴 객첵의 html을 변수에 저장
var divContents = $("div.report").html();
//팝업 만들기
var printWindow = window.open('', '', 'height=600,width=1000');
// 팝업타이틀이름
printWindow.document.write('검토보고서');
// 객체에 적용될 css파일명
printWindow.document.write('');
printWindow.document.write('');
//새 팝업에 내용이 담긴 html코드 작성
printWindow.document.write(divContents);
printWindow.document.write('');
printWindow.document.close();
//프린트호출
printWindow.print();

'IT > jquery' 카테고리의 다른 글

동적생성객체 이벤트 주기! jquery on 사용!  (0) 2017.04.05
jquery swiper  (0) 2016.11.28
Tree 구조 체크박스 선택  (0) 2016.11.24
테이블 행,열 병합  (0) 2016.11.19
여러개 input 박스 초기화  (0) 2016.11.06
어린해달 / 2016. 11. 24. 23:30 / IT/jquery
/*
     * 전체 선택 클릭시 하위에 있는 체크박스 설정
 */
$("li.active input[name=checkbox]").click(function() {
	setCheckbox('div.lnb ul li input[name=checkbox]',$(this).is(':checked'));
});
		
/*
* 상위체크박스 선택시 하위 체크박스 선택
 */
$("li.hasSub input[name=checkbox]").click(function() {
	setCheckbox('li.sub input[name=checkbox]',$(this).is(':checked'));
});

/*
* 전체 체크박스를 제외한 모든 체크박스가 선택/해제 되었을때 전체체크박스 설정
 */
$("li:not(.active) input[name=checkbox]").click(function() {
	var flag = allCheckReturn("li:not(.active) input[name=checkbox]");
	setCheckbox("li.active input[name=checkbox]",flag);
});

/*
 * 상위 체크박스가 하위체크박스가 전체 선택/해제 된 상태에 따라 변경
 */
$("li.sub input[name=checkbox]").click(function() {
	var flag = allCheckFlagReturn("li.sub input[name=checkbox]");
	setCheckbox("li.hasSub input[name=checkbox]",flag);
			
	flag = allCheckFlagReturn("li:not(.active) input[name=checkbox]");
	setCheckbox("li.active input[name=checkbox]",flag);
});

/* 
 * 
 * 체크박스 트리구조 체크
 * 
 * 사용법 : $('#테이블 ID').colspan (0);
 * 
 */ 
allCheckFlagReturn = function(obj) {
	var flag = false;
	$(obj).each(function(){
		if (!$(this).is(':checked')) {
			flag = true;
		}
	});
	return !flag
}
/* 
 * 
 * 체크박스 선택/해제
 * 
 * 사용법 : $('#테이블 ID').colspan (0);
 * 
 */ 
setCheckbox = function(obj,flag) {
  if (flag) {
	  $(obj).prop('checked',true);
  }else{
	  $(obj).prop('checked',false);
  }
}

'IT > jquery' 카테고리의 다른 글

jquery swiper  (0) 2016.11.28
특정영역 웹페이지 프린트  (0) 2016.11.26
테이블 행,열 병합  (0) 2016.11.19
여러개 input 박스 초기화  (0) 2016.11.06
datepicker  (0) 2016.11.05
어린해달 / 2016. 11. 19. 15:56 / IT/jquery

http://shuiky.tistory.com/entry/jQuery%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%85%80%EB%B3%91%ED%95%A9

'IT > jquery' 카테고리의 다른 글

특정영역 웹페이지 프린트  (0) 2016.11.26
Tree 구조 체크박스 선택  (0) 2016.11.24
여러개 input 박스 초기화  (0) 2016.11.06
datepicker  (0) 2016.11.05
jquery로 부모창에 있는 iframe 접근 및 제어 방법  (0) 2016.09.25
어린해달 / 2016. 11. 6. 23:30 / IT/jquery

$(input박스가 있는 곳을 감싸고 있는 객체의 ID).find('input[type=text]').each(function(){ $(this).val(''); });


어린해달 / 2016. 11. 5. 23:30 / IT/jquery


데이터피커를 사용하기위한 css와 javascript url

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery.min.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>

datapicker 기본 설정 옵션들

$("#sDate, #eDate").datepicker( { dateFormat: 'yy-mm-dd', prevText: '이전 달', nextText: '다음 달', monthNames: ['1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월'], monthNamesShort: ['1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월'], dayNames: ['일','월','화','수','목','금','토'], dayNamesShort: ['일','월','화','수','목','금','토'], dayNamesMin: ['일','월','화','수','목','금','토'], showMonthAfterYear: true, changeMonth: true, changeYear: true, yearSuffix: '년' });

datapicker 옵션 - 시작날짜와 종료날짜값이 어긋나지 않도록 하는 코드

$('#sDate').datepicker("option", "maxDate", $("#eDate").val());
		  $('#sDate').datepicker("option", "onClose", function ( selectedDate ) {
		      $("#eDate").datepicker( "option", "minDate", selectedDate );
		});

		$('#eDate').datepicker("option", "minDate", $("#sDate").val());
		$('#eDate').datepicker("option", "onClose", function ( selectedDate ) {
		    $("#sDate").datepicker( "option", "maxDate", selectedDate );
		});
datapicker시작 날짜 설정

		$('#sDate').datepicker("option", "maxDate", $("#eDate").val());


어린해달 / 2016. 9. 25. 09:00 / IT/jquery


팝업창에서 자신을 호출한 부모 창에 접근

$("접근하고자하는요소" , opener.document)


 iframe 안에서 자신을 가지고 있는 부모창에 접근
$("접근하고자하는요소" , parent.document)


부모 창에 있는 iframe 접근

// 부모창의 iframe이 새로고침 $("#ifrm",parent.document).get(0).contentDocument.location.reload(); // 부모창의 iframe이 모두 load 된 후 특정 행동을 하게 하기 위한 코드 $("#ifrm",parent.document).load(이동할 주소, function(){ // 실행할 내용 // 팝업에서 openr.document로 해서 실행했을때 팝업창이 열려있을때 새로고침을 하면, // 팝업에 있는 이 함수를 타고 iframe의 로딩 작업을 함. // 이동할 주소에서 해로고침을해서 값을 새로설정하는 부분이 있다면 // if문으로 타야할지 말아야할지 구분해주는 코드 필요. }); // 부모창에 있는 iframe안의 요소 접근 및 제어 $("#ifrm", parent.document).contents().find("#txtAlert").val("요소제어"); // 부모창에 있는 iframe안의 함수 실행 $("#ifrm", parent.document).get(0).contentWindow.funName(); // 부모창에 있는 iframe안의 변수 실행 $("#ifrm", parent.document).get(0).contentWindow.varName(); // iframe에서 부모창에 있는 iframe 제어하기 $('제어할 아이디', parent.frames["부모창 제어할 frame의 name값"].document).html("여기도 제어한다.");




'IT > jquery' 카테고리의 다른 글

Tree 구조 체크박스 선택  (0) 2016.11.24
테이블 행,열 병합  (0) 2016.11.19
여러개 input 박스 초기화  (0) 2016.11.06
datepicker  (0) 2016.11.05
jsp파일에서 jquery의 template를 사용한 데이터 바인딩  (0) 2016.08.25
어린해달 / 2016. 8. 25. 22:01 / IT/jquery

jquery의 template은 무엇인가?


templat의 사전적 의미부터 확인해 보겠습니다. 

template 
 
1. 형판(形板)   2. 견본, 본보기


'형판'이라는 뜻으로, 어떤 모양을 만들 때에 사용하기 위하여 일정한 모형을 새겨 만드는 널빤지라는 뜻을 가지고 있습니다.

jQuery의 template Plugin도 웹 코드상에서 일종의 형판과 같은 역할을 합니다. 일정한 패턴을 가진 코드와 데이터가 반복될 때, 반복되는 코드의 구조를 template로 따로 관리하여 재사용을 할 수 있도록 도와줍니다. 


Template Plugin 다운로드 방법


 파일은 https://github.com/BorisMoore/jquery-tmpl 에서 다운이 가능합니다. 



Clone or download 버튼을 누른뒤 Donwload ZIP버튼을 누르면 화면에 보여지는 파일들을 다운 받을 수 있습니다.

다운 받은뒤 프로젝트의 js폴더들이 위한 곳으로 jQuery관련 js파일들을 이동합니다.

사용하고자하는 파일에 아래와 같은 script를 추가해줍니다.

<script type="text/javascript" src="/js/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="/js/jquery.tmpl.js"></script>


Template 사용법


jQuery.tmpl( template [, data] [, options] ) 혹은 $.tmpl( template [, data] [, options] ) 로 표현이 가능합니다.

  • template    - 반복시킬 문자나 HTML 코드가 위치하는 자리입니다.
  • data          - template에 바인딩될 데이터 입니다.
  • options      - 선택적인 맵(키-값)을 입력 가능한 공간으로, template이 만들어지는 동안에   data를 확장 시킬수 있습니다.
※ option의 설명은 https://github.com/BorisMoore/jquery-tmpl 내용을 직접 해석한 내용입니다.  오역이 있을 수 있습니다.

같이 사용할 수 있는 jquery 함수

//appendTo(target)     - target의 영역안의 끝부분에 위치됩니다.
$.tmpl("<li>${company}</li>" , {"compnay": "회사3"}).appendTo("#companyList");

//prependTo(target)    - target의 영역안의 시작부분에 위치됩니다.
$.tmpl("<li>${company}</li>" , {"compnay": "회사2"}).prependTo("#companyList");

//insertAfter(target)     - target의 영역밖에서 해당 target 바로 다음에 위치됩니다.
$.tmpl("<li>${company}</li>" , {"compnay": "회사1"}).insertAfter("#companyList");

//insertBefore(target)   - target의 영역밖에서 해당 target 바로 앞에 위치됩니다.
$.tmpl("<li>${company}</li>" , {"compnay": "회사4"}).insertBefore("#companyList");


1. .tmpl() :  템프릿 소스를 가지고 있는 객체에 체인 형식으로 사용.
<script id="companyTemplate" type="text/html">
    <li>${company}</li>
</script>

var datas = [ 
              {"compnay": "회사1"}
            , {"compnay": "회사2"}
            , {"compnay": "회사3"}
            ]
// companyTemplate에 datas객체에 있는 데이터를 바인딩하여 companyList공간안 제일 뒷부분에 소스를 추가합니다
$("#companyTemplate").tmpl(datas).appendTo("#companyList");


2. $tmpl() :  HTML 요소를 $tmpl의 첫번째 요소로 문자열로 바로 넣거나, template() 함수를 이용하여 사용할수 있습니다.

2-1 문자열을 이용하는 법
var datas = [  {"compnay": "회사1"}
            , {"compnay": "회사2"}
            , {"compnay": "회사3"}
            ]
// HTML 요소를 직접 스트링으로 적어서 사용
$.tmpl("<li>${company}</li>" , datas).appendTo("#companyList");

// HTML 요소를 변수에 저장해서 사용
var templateStr = "<li>${company}</li>"
$.tmpl(templateStr ,datas).appendTo("#companyList");

2-2 template함수를 사용하는 법
<script id="companyTemplate" type="text/html">
    <li>${company}</li>
</script>
var datas = [  {"compnay": "회사1"}
            , {"compnay": "회사2"}
            , {"compnay": "회사3"}
            ]

// 템플릿 소스를 가진 객체를 지정해 템플릿 이름을 부여
$("#companyTemplate").template("companyTmpl");
$.tmpl("companyTmpl" , datas).appendTo("#companyList");

// template함수에 부여할 템플릿이름과 사용할 코드를 직접 입력
$.template("companyTemp","<li>${company}</li>");
$.tmpl("companyTemp",datas).appendTo("#companyList");


3 .tmplItem & $.tmplItem
 tmplItem은 template를 이용해 만들어지 코드의 데이터에 접근할수 있도록 해주는 함수입니다.
<script id="companyTemplate" type="text/html">
    <li>${company}</li>
</script>
var datas = [  {"compnay": "회사1"}
            , {"compnay": "회사2"}
            , {"compnay": "회사3"}
            ]

$.template("companyTemp","<li>${company}</li>");
$.tmpl("companyTemp",datas).appendTo("#companyList");

// 템플릿의데이터 접근
var lastTmplItem= $("div li:last").tmplItem();
// 템플릿의 데이터 가져오는 방법
var itemData = lastTmplItem.data
// 템플링싀 노드를 가져오는 방법
var itemNode = lastTmplItem.node;
console.log("company : " + itemData.company );

얼마 전 바보 같은 실수를 해서 몇 시간을 낭비한 일이 있어 이 글에 첨부합니다.
JSP 파일에서 template로 selectbox를 만드는 작업을 하였는데, 템플릿에 데이터가 반영이 되지 않았습니다.
이유는 JSP 파일에서 '$'문자를 EL로 인식하기 때문입니다.
템플릿 소스를 js파일로 따로 분리하지 않고, jsp파일에서 사용할 경우 $앞에 \를 추가하여 \$로 사용을 해주어야 데이터를 읽어와 화면에 보여줄 수 있습니다.





'IT > jquery' 카테고리의 다른 글

Tree 구조 체크박스 선택  (0) 2016.11.24
테이블 행,열 병합  (0) 2016.11.19
여러개 input 박스 초기화  (0) 2016.11.06
datepicker  (0) 2016.11.05
jquery로 부모창에 있는 iframe 접근 및 제어 방법  (0) 2016.09.25
© 2015 어린해달 in 해달과 조개
Designed by DH / Powered by Tistory
/ /