var menu = new Array(4);
빈배열 5개 공간만들어 두고
1 2 3 4 5 6 7 이라는 메뉴가 있다고 가정하고
클릭한 순서가 3 2 1 4 5 이라면
순서대로 배열에 값이 3 2 1 4 5이렇게 들어가게 할수있을까요?
제가 하면 클리하면 하지만 [ , , , ,5 ] <- 여기에 5들어간 부분만 바뀌고.. 추가 추가가 안되고있습니다..
메뉴라서 메뉴클릭하면 페이지 이동하면서 새로 고침이 되고 있긴합니다..
|
답변 3개
채택된 답변
+20 포인트
아래의 코드로 테스트해보세요.
1. 클릭한 순서대로 배열에 추가한다.
2. 클릭한 값이 이미 존재한다면 삭제하고 배열의 마지막에 추가한다.
Copy
<button type="button" class="aaa" style="width:60px;">1</button>
<button type="button" class="aaa" style="width:60px;">2</button>
<button type="button" class="aaa" style="width:60px;">3</button>
<button type="button" class="aaa" style="width:60px;">4</button>
<button type="button" class="aaa" style="width:60px;">5</button>
<button type="button" class="aaa" style="width:60px;">6</button>
<button type="button" class="aaa" style="width:60px;">7</button>
<button type="button" class="aaa" style="width:60px;">8</button>
<script>
var arr = []; // 클릭한 값을 담을 배열을 전역변수로 선언
$(document).ready(function() {
$(".aaa").click(function() {
//var ix = $(this).index();
var v = $(this).text();
makeArr(arr, v);
console.log(arr);
});
});
function makeArr(array, val) {
var chk = array.indexOf(val);
if (chk==-1){
array.push(val); // 값이 없다면 배열의 마지막에 추가
}else{
array.splice(chk, 1); //삭제하고
array.push(val); // 마지막에 추가한다.
}
}
</script>
Copy
<script>
$(function() {
//var menus = [];
$("a").on("click", function(e) {
e.preventDefault();
$(this).parent().clone().insertAfter($("#result"));
//menus.unshift($(this).data("idx"));
//console.log(menus);
});
});
</script>
<ol>
<li><a href="#" data-idx="1">1111</a></li>
<li><a href="#" data-idx="2">22</a></li>
<li><a href="#" data-idx="3">33333</a></li>
<li><a href="#" data-idx="4">4444</a></li>
<li><a href="#" data-idx="5">555555</a></li>
<li><a href="#" data-idx="6">666</a></li>
</ol>
<ol id="result"></ol>
메뉴를 이용하실 거면 이런 식으로만 해도 되지 않을까 싶네요.
배열에 집어넣으실 경우엔 위 주석 부분 해제하시면 될 것 같습니다.
답변을 작성하려면 로그인이 필요합니다.