'분류 전체보기'에 해당되는 글 223건

  1. 2011.11.11 jQuery로 테이블 tr 동적으로 추가,삭제 하기 v2 33
  2. 2011.11.11 jQuery로 테이블 tr 동적으로 추가,삭제 하기 3
  3. 2011.11.09 디폴트 패키지에 있는 자바 class 실행하기 ( Could not find the main class 에러날때 ) 1
  4. 2011.11.09 javascript Array 에 protoype으로 remove 함수 추가하기 2
  5. 2011.11.07 자작 훌러그인 : jQuery blingHover v0.1 (링크 롤오버시 텍스트 컬러를 보드랍게 바꿔주기-_-)

jQuery로 테이블 tr 동적으로 추가,삭제 하기 v2

저번에 맹글었던거에서 옵션을 추가하는 기능을 추가해보았다.


이 예제에서 꽤 많은 jQuery 셀렉터와 함수들을 사용한것 같은데 소스를 이해해 보면서 jQuery 사용법을 살살 익혀봐도 좋을것 같다.




만들어질 것은 다음과 같다. (직접 클릭해 보기바람)
옵션명 항목명 필수항목 가격 재고 옵션추가



소스
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
	
	<script type="text/javascript">
		$(document).ready(function(){
			// 옵션추가 버튼 클릭시
			$("#addItemBtn").click(function(){
				// item 의 최대번호 구하기
				var lastItemNo = $("#example tr:last").attr("class").replace("item", "");

				var newitem = $("#example tr:eq(1)").clone();
				newitem.removeClass();
				newitem.find("td:eq(0)").attr("rowspan", "1");
				newitem.addClass("item"+(parseInt(lastItemNo)+1));

				$("#example").append(newitem);
			});


			// 항목추가 버튼 클릭시
			$(".addBtn").live("click", function(){
				var clickedRow = $(this).parent().parent();
				var cls = clickedRow.attr("class");

				// tr 복사해서 마지막에 추가
				var newrow = clickedRow.clone();
				newrow.find("td:eq(0)").remove();
				newrow.insertAfter($("#example ."+cls+":last"));

				// rowspan 조정
				resizeRowspan(cls);
			});
			
			
			// 삭제버튼 클릭시
			$(".delBtn").live("click", function(){
				var clickedRow = $(this).parent().parent();
				var cls = clickedRow.attr("class");
				
				// 각 항목의 첫번째 row를 삭제한 경우 다음 row에 td 하나를 추가해 준다.
				if( clickedRow.find("td:eq(0)").attr("rowspan") ){
					if( clickedRow.next().hasClass(cls) ){
						clickedRow.next().prepend(clickedRow.find("td:eq(0)"));
					}
				}

				clickedRow.remove();

				// rowspan 조정
				resizeRowspan(cls);
			});

			// cls : rowspan 을 조정할 class ex) item1, item2, ...
			function resizeRowspan(cls){
				var rowspan = $("."+cls).length;
				$("."+cls+":first td:eq(0)").attr("rowspan", rowspan);
			}
		});
	</script>
</head>

<body>
<button id="addItemBtn">옵션추가</button>
<table id="example" border="1px">
		<tr>
			<th>옵션명</th>
			<th>항목명</th>
			<th>필수항목</th>
			<th>가격</th>
			<th>재고</th>
			<th>옵션추가</th>
		</tr>
		<tr class="item1">
			<td><input type="text" /><button class="addBtn">항목추가</button></td>
			<td><input type="text" /></td>
			<td><input type="checkbox" /></td>
			<td><input type="text" /></td>
			<td><input type="text" /></td>
			<td><button class="delBtn">삭제</button></td>
		</tr>
		<tr class="item2">
			<td><input type="text" /><button class="addBtn">항목추가</button></td>
			<td><input type="text" /></td>
			<td><input type="checkbox" /></td>
			<td><input type="text" /></td>
			<td><input type="text" /></td>
			<td><button class="delBtn">삭제</button></td>
		</tr>
		<tr class="item3">
			<td><input type="text" /><button class="addBtn">항목추가</button></td>
			<td><input type="text" /></td>
			<td><input type="checkbox" /></td>
			<td><input type="text" /></td>
			<td><input type="text" /></td>
			<td><button class="delBtn">삭제</button></td>
		</tr>
		<tr class="item4">
			<td><input type="text" /><button class="addBtn">항목추가</button></td>
			<td><input type="text" /></td>
			<td><input type="checkbox" /></td>
			<td><input type="text" /></td>
			<td><input type="text" /></td>
			<td><button class="delBtn">삭제</button></td>
		</tr>
</table>
</body>
</html>	


jQuery로 테이블 tr 동적으로 추가,삭제 하기



jQuery를 사용해 테이블을 동적으로 변화시키는 예제를 맹글어 보았다.


jQuery 로 맹글어서 왠만한 브라우져에서는 다 작동할 것이라 예측한다. 살짝 응용하면 다른 재미진 것도 할 수 있을듯~ 



만들어질 것은 다음과 같다. (직접 클릭해 보기바람)
옵션명 항목명 필수항목 가격 재고 옵션추가



소스
<html>
<head>
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
		
	<script type="text/javascript">
		$(document).ready(function(){
			// 항목추가 버튼 클릭시
			$(".addBtn").click(function(){
				var clickedRow = $(this).parent().parent();
				var cls = clickedRow.attr("class");

				// tr 복사해서 마지막에 추가
				var newrow = clickedRow.clone();
				newrow.find("td:eq(0)").remove();
				newrow.insertAfter($("#example ."+cls+":last"));

				// rowspan 증가
				resizeRowspan(cls);
			});
			
			
			// 삭제버튼 클릭시
			$(".delBtn").live("click", function(){
				var clickedRow = $(this).parent().parent();
				var cls = clickedRow.attr("class");
				
				// 각 항목의 첫번째 row를 삭제한 경우 다음 row에 td 하나를 추가해 준다.
				if( clickedRow.find("td:eq(0)").attr("rowspan") ){
					if( clickedRow.next().hasClass(cls) ){
						clickedRow.next().prepend(clickedRow.find("td:eq(0)"));
					}
				}

				clickedRow.remove();

				resizeRowspan(cls);
			});

			// cls : rowspan 을 조정할 class ex) item1, item2, ...
			function resizeRowspan(cls){
				var rowspan = $("."+cls).length;
				$("."+cls+":first td:eq(0)").attr("rowspan", rowspan);
			}
		});
	</script>
</head>

<body>
<table id="example" border="1px">
		<tr>
			<th>옵션명</th>
			<th>항목명</th>
			<th>필수항목</th>
			<th>가격</th>
			<th>재고</th>
			<th>옵션추가</th>
		</tr>
		<tr class="item1">
			<td><input type="text" /><button class="addBtn">항목추가</button></td>
			<td><input type="text" /></td>
			<td><input type="checkbox" /></td>
			<td><input type="text" /></td>
			<td><input type="text" /></td>
			<td><button class="delBtn">삭제</button></td>
		</tr>
		<tr class="item2">
			<td><input type="text" /><button class="addBtn">항목추가</button></td>
			<td><input type="text" /></td>
			<td><input type="checkbox" /></td>
			<td><input type="text" /></td>
			<td><input type="text" /></td>
			<td><button class="delBtn">삭제</button></td>
		</tr>
		<tr class="item3">
			<td><input type="text" /><button class="addBtn">항목추가</button></td>
			<td><input type="text" /></td>
			<td><input type="checkbox" /></td>
			<td><input type="text" /></td>
			<td><input type="text" /></td>
			<td><button class="delBtn">삭제</button></td>
		</tr>
		<tr class="item4">
			<td><input type="text" /><button class="addBtn">항목추가</button></td>
			<td><input type="text" /></td>
			<td><input type="checkbox" /></td>
			<td><input type="text" /></td>
			<td><input type="text" /></td>
			<td><button class="delBtn">삭제</button></td>
		</tr>
</table>
</body>
</html>	


디폴트 패키지에 있는 자바 class 실행하기 ( Could not find the main class 에러날때 )



간만에 커맨드 창에서 실행해야 하는 자바예제를 작성해 볼 일이 있어서 맨들어 보았다.

그런데 다 맨든게 이클립스에서 run 을 하면 실행이 잘되는데 커맨드창에서 java 클래스명.class 로 실행을 하면

뒤져라 Could not find the main class 요러면서 main 함수를 찾을 수 없다는 에러만 뱉어 내고 실행이 잘 안됬다.


결국은 해결했는데 뭔가 많이 꾸리한 느낌을 받지 아니할 수가 없다.

예제로 맨들어본 아무 패키지 선언도 안된 디폴트 패키지에 있는 Test.java
public class Test {
	public static void main(String[] args) {
		System.out.println("Hello Everyone~");
	}
}

 컴파일
javac Test.java

 컴파일을 한 후 대부분 요래  실행을 할것이다. 아니면 나만 그런가-_-? 아무튼!
java Test.class

 하지만 죠래 실행하면 뒤져도 실행이 안된다. 해답은 요래 실행하는 것이다  -_-
java Test


지금와서 가만 생각해보니 java Test.class 라고 입력하면 Test 라는 패키지에 class 라는 클래스를 찾나 보다 -_-;;;




※ 패키지가 있는 java 파일 커맨드에서 컴파일하기

sample 패키지 Test.java
package sample;

public class Test {
	public static void main(String[] args) {
		System.out.println("Hello Everyone~");
	}
}

컴파일
javac -d . Test.java
요래 컴파일하면 현재 디렉토리 아래로 sample 디렉토리가 생성되고 거기에 Test.class 가 컴파일 된다.

실행
java sample.Test



javascript Array 에 protoype으로 remove 함수 추가하기



요상스럽게도 자바스크립트 배열 객체에는 배열상의 특정 인덱스에 있는 엘리먼트를 삭제하는 remove(index) 요런 함수가 없다.

뭔 이유가 있으니까 안 맨들어 놨겠지만 개발을 하다보면 죠런 함수가 간절하게 필요한 경우가 있다.




prototype 을 이용해 Array 객체에 remove() 함수를 추가해 보자.
Array.prototype.remove = function(idx) {
	return (idx<0 || idx>this.length) ? this : this.slice(0, idx).concat(this.slice(idx+1, this.length));
};



죠걸 모든 페이지에서 공통적으로 포함시키는 common.js 같은 js 파일에 추가하면 배열 객체에서 remove() 함수를 쓸 수 있게 된다.
// 테스트
var arr = ["a", "b", "c", "d"];

console.log(arr.remove(0));		// ["b", "c", "d"]

console.log(arr.remove(1));		// ["a", "c", "d"]

console.log(arr.remove(2));		// ["a", "b", "d"]

console.log(arr.remove(3));		// ["a", "b", "c"]

console.log(arr.remove(4));		// ["a", "b", "c", "d"]

console.log(arr.remove(-1));	// ["a", "b", "c", "d"]




자작 훌러그인 : jQuery blingHover v0.1 (링크 롤오버시 텍스트 컬러를 보드랍게 바꿔주기-_-)




링크같은걸 롤오버 했을때 색깔이 바로 훅 바뀌지 않고, 보드랍게 에니메이션 처리되면서 서서히 색깔을 바꾸게 해주는 훌러그인이다.

※ 설치 (jquery 와 jquery-ui 훌러그인이 필요하다.)
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
<script src="jquery.blinghover-0.1.js" type="text/javascript"></script>


사용법 및 데모


1. 디폴트

<script type="text/javascript">
	$("a").blingHover();
</script>

<a href="#">테스트 링크1</a>
<a href="#">테스트 링크2</a>
<a href="#">테스트 링크3</a>


2. 롤오버 컬러지정

<script type="text/javascript">
	$("a.test1").blingHover("rgb(0, 255, 0)");
</script>

<a href="#" class="test1">테스트 링크4</a>
<a href="#" class="test1">테스트 링크5</a>
<a href="#" class="test1">테스트 링크6</a>


3. 롤오버 컬러지정

<script type="text/javascript">
	$("a.test2").blingHover("#ff8600");
</script>

<a href="#" class="test2">테스트 링크7</a>
<a href="#" class="test2">테스트 링크8</a>
<a href="#" class="test2">테스트 링크9</a>


4. 롤오버 에니메이션 시간 및 컬러지정

<script type="text/javascript">
	$(".demo_links span.test3").blingHover({color:"#ff8600",time:500});
</script>

<span class="test3">테스트 span10</span>
<span class="test3">테스트 span11</span>
<span class="test3">테스트 span12</span>




prev 1 ··· 24 25 26 27 28 29 30 ··· 45 next