2013-10-01 55 views
0

我正在設計巴士座位安排。我已經編寫了javascript函數來動態創建座位,以便在頁面加載時創建座位。現在我想要一個用戶只能選擇一個座位的條件。選擇一個座位後,如果他點擊另一個座位,則必須取消選擇之前的座位。下面是我的代碼....必須添加什麼才能在它們之間切換?使用javascript切換座位數

function createSeats(oSeatsContainer,seatsPerRow,rowNumber){ 
      for(i=0; i < rowNumber; i++){ 
       var oRow = document.createElement('tr'); 
        for(j=1; j <= seatsPerRow; j++){ 
        oCell = document.createElement('td'); 
        var oImg = document.createElement('img'); 
        oImg.src = statusPics['avail'].src; 
        oImg.status = 'avail'; 
        oImg.id = (i*10)+j; 
        oImg.onclick=function(){ 
         this.status = (this.status == 'avail')? 'mine' : 'avail'; 
         this.src = (this.status == 'avail')? statusPics['avail'].src : statusPics['mine'].src; 
         oTotalprice.innerHTML = ''; 
         oBookedSeatNos.innerHTML = ''; 
         oBtnCheckout.disabled = true; 
        } 
        oCell.appendChild(oImg); 
        oRow.appendChild(oCell); 
       } 
       oSeatsContainer.appendChild(oRow); 
      } 
     } 

回答

1

我建議你將一個事件綁定到父容器,並使用e.target獲取目標元素。 您可以將data-seat_id屬性添加到您的個人座位以唯一標識它們。

var selected_seat_id; 

oSeatsContainer.onClick = function(e) { 
    selected_seat_id = e.target.getAttribute("data-seat_id"); 
    drawSeats(); 
} 

drawSeats(); 

drawSeats()將類似於您在上面,但沒有的onClick處理程序,並考慮到selected_seat_id繪製的可用/採取座位寫的代碼。還要在循環中設置data-seat_id屬性。