Я написал небольшой скрипт, который позволяет пользователям искать изображения. Существует большое основное изображение и несколько миниатюр, которые создаются и добавляются в HTML при отправке поиска. Файлы изображений удаленно размещаются и отформатируются с помощью CSS. Основное изображение должно быть заменено на любое нажатие на миниатюру, но я не могу заставить его работать, и не работает event.preventDefault(). У меня такое чувство, что это проблема с селекторами jQuery, но я пробовал несколько разных конфигураций и ничего. Любая помощь приветствуется.Anchored Images and preventDefault()
<div id="photos">
<div id="mainImage">
<a href="http://drive.google.com/pic1.jpg" target="_blank" class="main">
<img src="http://drive.google.com/pic1.jpg" alt="Pic 1" />
</a>
</div>
<div id="thumbs">
<a href="http://drive.google.com/pic1.jpg" class="thumb">
<img src="http://drive.google.com/pic1.jpg" alt="Pic 1" class="thumbnail"/>
</a>
<a href="http://drive.google.com/pic2.jpg" class="thumb">
<img src="http://drive.google.com/pic2.jpg" alt="Pic 2" class="thumbnail"/>
</a>
<a href="http://drive.google.com/pic3.jpg" class="thumb">
<img src="http://drive.google.com/pic3.jpg" alt="Pic 3" class="thumbnail"/>
</a>
</div>
</div>
$('a.thumb img.thumbnail').on('click', function(event) {
event.preventDefault();
var src = $('img.thumbnail').attr('src'), alt = $('img.thumbnail').attr('alt');
$('a.main').attr('href', src);
$('a.main img').attr({'src': src, 'alt': alt});
});
Вы предотвращаете событие click по умолчанию на img, а не на якоре. Вам также может понадобиться использовать 'event.stopPropagation()', чтобы избежать нажатия на якорь. Кроме того, ваши селекторы 'img.thumbnail' возвратят несколько результатов, вы должны ограничить область действия переключателя до $ (this). – nullability
Это то, что я изначально думал, но используя «event.stopPropagation()» и не имеет никакого значения. Я пробовал использовать «это» раньше, но, будучи Javascript, это явно не сработало. Не увидев мою ошибку, я подумал, что мне нужно указать с фактическим селектором, и то, что вы видите, является результатом. Итак, спасибо за очистку области выбора. Он по-прежнему не хочет работать по какой-то причине, но спасибо за вашу помощь. – Cam