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

您需要传递要在拼接中删除的元素的索引开始更改数组的索引

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

完整代码

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');
    }
}

您需要提供数组的索引作为拼接的第一个参数,因此,您可以尝试:

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');
    }
}

最新更新