Вы можете просто использовать функцию do all в функции one
. Просто функция onclick
, чтобы определить, какой img
div вы щелкнули.
В функции onclick selectIcon
- this
относится к img, по которому мы щелкнули.
причина, по которой он не работал с вашим кодом, заключается в том, что вы указываете функции, на которую img
заменить sr c of. Таким образом, функция была replacing
всем, где присутствовало 150
Edit: Поскольку вы добавили дополнительную информацию об ожидаемом выходе, который вам нужен. Я воссоздал точный пример того, что вы хотите. Запустите приведенный ниже фрагмент, чтобы убедиться, что он работает. У меня также есть фон blur
, чтобы показать, какое изображение выбрано и заменено onclick
.
Я добавил фиктивное изображение src
, когда вы нажимаете на него, оно будет заменено new
большим изображением и если вы снова щелкните то же изображение bigger
, оно вернется к изображению old
. То же самое произойдет и с другими изображениями.
function selectIcon(_this) {
//get clicked img
var div = $(_this).closest('.feature')
//find clicked element img
var newIcon = div.find('.feature-image img');
//Add selected
if (!div.hasClass('selected')) {
div.addClass('selected')
div.css({
'background': 'rgb(0 0 0 / 8%)'
})
newIcon.attr('src', newIcon.attr('src').replace('150', '170'));
} else {
div.removeClass('selected')
div.css({
'background': 'none'
})
//Replace -old src with -new of the clicked item
newIcon.attr('src', newIcon.attr('src').replace('170', '150'));
}
//Show new src
var newSrc = newIcon.attr('src')
//console.log(newSrc)
}