자바스크립트 활용 제1탄 > 자유게시판

자유게시판

자바스크립트 활용 제1탄 정보

자바스크립트 활용 제1탄

본문

안녕하세요. 참 오랜만이조. 그동안 참 바빴습니다.
쪽지로 저에게 물어보신분이 있어서 이곳에 그 해답을 남깁니다.
참, 지난 연재내용보니 너무 한심하네요..ㅎㅎ 이제보니 완전 허접티 팍팍 내고 있더군요..ㅋㅋ;;

이번 강죄의 목적은 메뉴1 | 메뉴2 | 메뉴3 | 메뉴4
이렇게 네가지메뉴가 있는데 이중 한가지를 클릭하고 그 하단에 테이블로 된 디자인이
나오게 되며, 나머지 세가지는 감춰지고 실시간으로 나머지를 클릭하였을시 나머지는
감춰지는 그런 방식을 설명 드리려 합니다.

function ChangeLayer(name,id,su) {

var layer, layer2;
    var cnt;
    for (cnt = 1; cnt <= su; cnt++) {
layer = document.getElementById(name+cnt);
layer.style.display = (layer == (layer2=document.getElementById(name+id)))? "block" : "none";
    }
}
실제 이부분은 이곳의 모 스킨으로 부터 따온 소스를 원하는방식으로 변형시켜 본것입니다.
본 소스가 어느분것인지 정확히 기억이 나지를 않는군요.
본 소스는....

<script language='javascript'>
<!--
function toggleLayer(name, id) {
var layer = document.getElementById(name+id);
layer.style.display = (layer.style.display == "none")? "block" : "none";
}
//-->
</script>

이렇습니다. 이것은
메뉴1 => 클릭시 아래 테이블이 보여지고 말고만 결정 합니다.

그러나 위에 변형된 소스의 경우는 몇가지 메뉴가 번갈아 가며 선택된것만 보여주게 됩니다.
두가지르 적절히 혼용하신다면 여러가지 응용이 가능할 것입니다.

그럼 이제부터 블록을 설정해 보도록 하조.

<A href="javascript:toggleLayer('Comment', '<?=$list[$i][wr_id]?>')" onfocus='blur()'>덧글쓰기</a>
이부분은 응용된 리스트 스킨의 일부입니다. 무엇에 쓰이는지는 짐작이 가실것입니다.
맞습니다. 덧글쓰기 부분이 보여지고 말고를 결정하는 것이조. 그러므로 처음에는 보여지지 않다가
"덧글쓰기" 를 클릭하면 해당 부분이 보여지게 됩니다.

<DIV id=Comment<?=$list[$i][wr_id]?>' style="DISPLAY: none">
글쓰기폼
</DIV>

이부분이 보여지고 말고 하는 부분인데요. $list[$i][wr_id] 부분은 프로그램 소스상 게시물 번호조. 예를 들어 두번째 글이라면 wr_id 는 2이되면 이것은 다시 풀어 되어 Comment2 이 됩니다. 이렇게 출력된 것을 위에 "덧글보기" 링크에서 위 자바스크립트 함수를 호출 하여 <DIV></DIV> 부분을 보여주거나 말거나를 결정하게 됩니다.

자 . 지금까지 보신 내용을 이해 하셨다면, 다음 제가 가장 처음에 올린 변형 소스를 이해 하시는데에 어려움이 없으실것입니다. 만일 부족하다면 다음 기회에 설명드리겠습니다.

P.S 하도 타자를 많이 치다보니 근 일주일동안 손목에 엄청난 무리가 가서 통증이 심각하네요.
더쓰고 싶은데 손목이 쓰지 말라고 강요하네요.ㅡ.;;

[이 게시물은 홍석명님에 의해 2004-03-30 09:23:18 PHP Forum(으)로 부터 이동됨]

[이 게시물은 관리자님에 의해 2004-05-12 09:08:32 연재(으)로 부터 이동됨]
추천
0

댓글 2개

에고 더쓰고 가야 겠군요. 쓰고 나서 보니 너무 부족한 부분이 많으네요.^^;;

첫째로 Comment에 숫자가 붙는것은 그것으로 글번호를 구분하기 위함입니다.

이것은 게시판 형식이 아니고 글 내용도 모두 리스트에 보여지고 덧글과 덧글쓰기 가 모두

딸려서 보여지는 경우에 쓰이기 위한 것입니다. 기본적으로 안 보여지다가 클릭하면 보여지는 것이조.

그러므로 리스트가 돌때마다 Comment1, Comment2 ~ 순으로 계속  Comment 라는 <DIV id= 는
계속 바뀌고 그것은 클릭하는 "덧글쓰기" 에서 호출하는 부분에서도 같이 변합니다.

예를 들어 다섯번재 글에 덧글을 쓰고 싶다면
해당 하는 "덧글쓰기" 는 내부적으로
A href="javascript:toggleLayer('Comment', '<?=$list[$i][wr_id]?>')" onfocus='blur()'>덧글쓰기</a>
이부분이
A href="javascript:toggleLayer('Comment', '5')" onfocus='blur()'>덧글쓰기</a> 라고 되며, 다섯번째
글의 덧글쓰기 부분을 보여라 라고 명령하는 것이고, 다시 해당 부분이 <DIV id=Comment4> 로 블록지정된부분이
보여지는 것입니다.

그럼 첫번재 소스를 볼까요.
그것은
 메뉴1 | 메뉴2 | 메뉴3 | 메뉴4
이 네가지를 각기 다른 Div id 를 줍니다.
예를 들어 드리면
<div id=menu1> 내용1 </div>
<div id=menu2> 내용2 </div>
<div id=menu3> 내용3 </div>
<div id=menu4> 내용4 </div>
내용부분은 테이블이 들어가는 것이좋습니다. 테이블을 사용하지 않던가 테이블째 통째로 들어가던가 해야합니다. 테이블을 바깥에 지정하고 안쪽에 <tr><td>내용</td></tr> 이리 해버리면 오류납니다..ㅋㅋ

아무튼 링크를 걸때 위 부분은
<A href="javascript:ChangeLayer('menu', '2', '4');" onfocus='blur()'><b><FONT color=#5F6BB1>메뉴2</FONT></b></A>

이런식으로 부릅니다. 그러면 내용2만 보여지고 나머지 세가지는 보여지지 않지요.
네가지 메뉴는 동일한 자리에 불려지는 것입니다. 서로 체인지 하는것이조.
전체 195,513 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT