스킬(skills)/자바스크립트(Javascript) 36

defer 속성에 관하여

간혹 라는 구문을 본 적이 있을것이다.defer 는 '미루다, 연기하다' 라는 의미를 가진 단어로써html 및 css 보다 늦게 자바스크립트 구문을 호출하는 방법이다. 예를들어(이렇 게하는 경우는 굉장히 드물겠지만)페이지 로딩 후 select 박스의 값을 변경해야 하는일이 있을때select 태그 바로 밑에 javascript 구문을 쓰는 경우가 있을것이다. 이렇게 html 이 먼저 로딩되고 나서야 javascript 구문이 동작해야 하는 경우 기존에는body 안에다가 끼워넣었을 것이다. 그렇지만 좀 더 소스를 깔끔하게 하기 위하여 head 태그 안에 script 를 선언 하고도 위와같은 동작이 원할하게 수행되고자 할때 바로 defer 를 쓰는것이다.이렇게 쓰면 된다. 단, 반드시 .js 형태의 javas..

동일한 이름의 여러개의 Select 박스에서 중복 값 걸러내기

동일한 이름의 여러개의 Select 박스들이 각각 값이 중복되지 않게끔 저장 되어져야 하는 경우 다음과 같은 방법으로 체크할 수 있다. jQuery 를 이용하였다. 사과 바나나 수박 사과 바나나 수박 function checkDupl() { var temp = []; var obj = $('select[name="fruit"]'); var result = false; // 현재 옵션값 임시 배열에 저장 $(obj) .each(function(i) { temp[i] = $(this).val(); }); // 임시 배열값 과 옵션값이 같으면 임시 변수값 증가 $(temp) .each(function(i) { var x = 0; $(obj).each(function() { if( temp[i] == $(thi..

clearInterval 로 반복 명령 종료

setInterval 함수로 반복적인 동작을 처리할 수 있다는것은 다 알것이다. 그렇다면 이 setInterval 함수를 어떻게 종료 할 것인가? 바로 clearInterval 로 종료 할 수 있다. setInterval 함수 사용 시 특정 객체에 담아두고 clearInterval 함수로 그 객체를 종료할 수 있다.사용 예) var i = 0; var repeat = setInterval(function() { console.log(i); i++; if(i > 3) { console.log("종료"); clearInterval(repeat); } }, 1000);

팝업창 종료시점에 이벤트 처리하는 방법

다음의 소스로 팝업창 종료 시점에 이벤트를 처리할 수 있다. var openDialog = function(uri, name, options, closeCallback) { var win = window.open(uri, name, options); var interval = window.setInterval(function() { try { if (win == null || win.closed) { window.clearInterval(interval); closeCallback(win); } } catch (e) { } }, 1000); return win; }; setInterval을 이용하여 1초마다 한번씩 win 객체에 대하여 검사를 한다.만약 win 객체가(팝업창) 닫히게 되면 콜백 함수를 실..

자바스크립트로 콜백(callback) 함수 구현하기

콜백 함수에 대해서 간단하게 설명 해 보겠습니다. 콜백 이란 진짜 쉽게 말해서 호출 했던 부분으로 다시 돌아간다고 생각하시면 됩니다. 아래 소스를 보면서 얘기해보도록 하죠function doFunction(callback){ // doFunction 에서 실행 될 내용들 var a = 1; var b = 1; var c = a + b; alert('doFunction 에서 실행 될 내용이 실행된다.'); // doFunction 에서 실행 될 내용들이 다 실행 된 후 인자값으로 받은 callback을 실행한다. // 넘겨받은 callback이 함수이기 때문에 실행 가능. // 이때 c 값을 인자값으로 넘겨준다. if(typeof callback === 'function') { callback(c); } ..