[英]how to show tick mark and an overlay on image while clicking an image, but when i click other image it should hide and display the same on new image?
[英]How do I splice a new image into an array in the same position that the image that I want to remove is in and to display this image
我有一系列圖像。 每個圖像都是可點擊的並生成一條消息。圖像位於隨機數組中。 這一切都很好。 我未能實現的是:單擊圖像時,它變得過時了,所以我想用一個新的、不可點擊的圖像替換可點擊的圖像。 我嘗試使用 array.splice 方法如下 newArray=myImages.splice(evt.target,1,newImage) 這將新圖像放置在新數組中的 position 0 而不是其原始 position 中,並且不會生成新圖像覆蓋舊圖像。 如果有任何幫助,我將不勝感激。
如果我們猜測newArray=myImages.splice(evt.target,1,newImage)
中的evt
是一個事件 object, evt.target
是一個DOM 元素,而不是索引。 如果這是在您描述的點擊事件中,它將是點擊的圖像。
splice
的第一個參數是進行更改的索引; 一個號碼。 DOM 元素不是數字。
splice
還返回一個已刪除圖像的數組,而不是更新的數組。 (與map
或slice
等方法不同, splice
會修改您調用它的數組。)
您可以使用indexOf
找到上一張圖像的索引,然后我們將其splice
:
const index = myImages.indexOf(evt.target);
if (index !== -1) {
myImages.splice(index, 1, newImage);
}
或者您可以使用map
創建一個新數組,其中包含新圖像來代替單擊的圖像:
newArray = myImages.map(img => img === evt.target ? newImage : img);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.