Я пробовал множество вариантов сейчас!
У меня есть набор элементов, которые содержат миниатюры, созданные ASP Повторяющиеся и динамически отображаемые на странице при загрузке AJAX, внутри них есть несколько значков, которые при нажатии увеличивают изображение.
Повторный HTML выглядит так:
<div class="prodImgContainer">
<img src="*url*" id="*id*" class="itemImages" />
<div class="imgControl">
<span class="tinyIcons tinyDelete imgDelete" id="delete*id*"></span>
<br />
<span class="tinyIcons tinyZoom imgZoom" id="zoom*id*"></span>
</div>
</div>
Итак, когда вы что-нибудь с классом imgZoom
, оно запускает расширение. Это делается с помощью стандартной функции загрузки модальных окон.
$('.imgZoom').live('click', function () {
var prodId = $('#productId').val();
var thisImage = ($(this).attr('id').replace('zoom', '')).replace('-tb', '');
var img = $("<img />").addClass('nextImg').attr('id', 'thisImg' + thisImage).attr('src', '*BASE URL *' + prodId + '/' + thisImage + '.jpg').load(function () {
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
alert('broken image!');
} else {
$("#largeImgContainer").empty();
$('#showImg').click();
$("#largeImgContainer").css('display', 'none').append(img).delay('1000').fadeIn('slow');
};
});
});
Приведенный выше код загружает увеличенное изображение в существующий контейнер.
Теперь ... Я хочу иметь возможность вызвать событие click
для следующего элемента imgZoom
, щелкнув по созданному изображению.
Хотя вызывающего элемента больше нет в коде, поэтому я пытаюсь сделать это так:
$('.nextImg').live('click', function () {
var nextImage = ($(this).attr('id').replace('thisImg', '')).replace('-tb', '');
$('#zoom' + nextImage + '-tb').next('.nextImg').click();
});
Здесь я могу определить идентификатор элемента, который был изначально нажат, чтобы открыть это изображение
Я ожидаю, что $('#zoom' + nextImage + '-tb').next('.nextImg').click();
найдет этот элемент, затем найдите следующий с классом nextImg
и щелкните по нему
Но это не работает ... что мне не хватает?