배열에 클릭할때마다 추가

배열에 클릭할때마다 추가

QA

배열에 클릭할때마다 추가

본문

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

아래의 코드로 테스트해보세요.

 

1. 클릭한 순서대로 배열에 추가한다.

2. 클릭한 값이 이미 존재한다면 삭제하고 배열의 마지막에 추가한다.

 


<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>

<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>

메뉴를 이용하실 거면 이런 식으로만 해도 되지 않을까 싶네요.

배열에 집어넣으실 경우엔 위 주석 부분 해제하시면 될 것 같습니다.

http://exam.dothome.co.kr/temp/wrid_327813.html

메뉴클릭하면 페이지 이동하면서 <---이렇게 페이지가 이동 해버리는데 배열값이 남아 잇을 수가 없죠

메뉴 링크에서 값을 전달하도록 링크를 만들고 head부분에서 넘어온 값을 php session 또는 쿠키로

저장하는 방법으로 하세요

세션 이나 쿠키 값을 읽어서 자바스크립트 배열로 만들면 됩니다

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 253
QA 내용 검색

회원로그인

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