2015-06-02 76 views
0

這是我用來選擇照片的功能。通過添加到數組中並在其上放置綠色複選標記來選擇它們。當他們再次被點擊時,他們應該從數組中刪除,並且勾選標記也應該被刪除。Javascript函數選擇圖像只適用於第一個圖像

這工作正常,除了如果你選擇,然後取消選擇一張照片,它不會讓你選擇它之後。唯一的例外是列表中的第一張照片(左上角),我不確定這是爲什麼。你可以隨意選擇和取消選擇,並且它可以正常工作。我希望所有照片的行爲都像這樣。

這裏是我的代碼:

var selectedPhotos = new Array(); 
function selectVehicle(photoID) { 
    if (selectedPhotos.indexOf(photoID) > -1) { 
     $('#check'+photoID).css('z-index', '-1'); 
     selectedPhotos.splice(photoID, 1); 
    } else { 
     selectedPhotos.push(photoID); 
     $('#check'+photoID).css('z-index', '1'); 
    } 

} 

您可以在這裏的行動瀏覽網頁: http://lindseymotors.com/unassignedphotos.php

回答

3

你需要傳遞元素的索引中splice指數以去除其開始改變陣列

var index = selectedPhotos.indexOf(photoID); 
if(index > -1){ 
    selectedPhotos.splice(index , 1); 
} 

Com plete代碼

var selectedPhotos = new Array(); 
function selectVehicle(photoID) { 
    var index = selectedPhotos.indexOf(photoID); 
    if(index > -1){ 
     selectedPhotos.splice(index, 1); 
     $('#check'+photoID).css('z-index', '-1'); 
    } else { 
     selectedPhotos.push(photoID); 
     $('#check'+photoID).css('z-index', '1'); 
    } 
} 
+0

作品,太好了,謝謝! – SISYN

+0

@danL,太棒了:),很高興我能幫上忙 – Satpal

1

您需要提供數組的索引作爲第一個參數splice所以,你可以試試這個:

var selectedPhotos = new Array(); 
function selectVehicle(photoID) { 
    if (selectedPhotos.indexOf(photoID) > -1) { 
     $('#check'+photoID).css('z-index', '-1'); 
     selectedPhotos.splice(selectedPhotos.indexOf(photoID), 1); 
    } else { 
     selectedPhotos.push(photoID); 
     $('#check'+photoID).css('z-index', '1'); 
    } 

} 
相關問題