2017-01-20 2 views
0

이 스 니펫은 블랙 잭 게임에서 가져온 것으로, 히트 버튼을 클릭 할 때마다 DOM에 새 카드 이미지를 표시하려고합니다. 자바 스크립트를 사용하여 DOM에 순차적으로 이미지 추가

// ***************************************** // 
 
function DeckObject() { 
 

 
    this.cardArray = [] 
 
     // ***************************************** // 
 
    this.displayCards = function(cardPair) { 
 
     var fragment = document.createDocumentFragment(); 
 
     for (var i = 0; i < cards.length; i++) { 
 
      var imgElement = document.createElement("img"); 
 
      imgElement.src = "Images/" + cardPair[i].cardNum + "_of_" + cards[i].cardSuit + ".png"; 
 
      fragment.appendChild(imgElement); 
 
     } 
 
     if (this === User) { 
 
      showUserCards.appendChild(fragment); //showUserCards is a var with div element 
 
     } else { 
 
      showDealerCards.appendChild(fragment); 
 
     } 
 
     } 
 
     // ***************************************** // 
 
    this.hitCard = function(cardPair) { 
 
     var extraCard = cardPair.push(MainDeck.cardArray.pop()); 
 
     this.displayCards(cardPair[extraCard - 1]); //display only the new added card 
 
    } 
 
    } 
 
    // **************************************** //

그래서 나는 기본적으로 뭘하는지 : 모든 'hitButton'클릭에, 나는 새 카드가 처음 cardArray을 통과 밀어 hitCard() 함수를 실행합니다.
그런 다음 새로 추가 된 카드 만 displayCards() 함수에 전달하여 DOM에 표시합니다.

참고displayCards()는 초기에 수행 I가

+0

이 게시물에는 어떤 문제 나 질문이 없습니다. 무슨 일 이니? – ValLeNain

+0

@ValLeNain 하나의 카드를 통과했을 때 DOM에 카드 이미지를 추가하지 않았지만 하나 이상의 카드를 통과 한 경우 카드 이미지를 추가하지 않았습니다. 이 희소 한 행동의 모르기, 나는이 단편을 여기에서 배치하고 그러나 나중에 나 자신을 찾아 냈다 :) – Jamie

답변

0

새로운 이미지가 첨가되지 않은 hitCard() 함수를 통해 싱글 카드 물체를 통과 할 때를 제외한 N '크기'배열 코딩 DOM 수행 중일 때 this.displayCards (cardPair [extraCard - 1]);, 내가 새로 밀어 낸 카드를 displayCard() 함수에 객체로 전달하려고합니다. 그러나 displayCards() 함수는 매개 변수로 배열을 받아 들여 반복하므로 객체를 읽을 수 없습니다.

관련 문제