Кажется, что застрял, пытаясь обновить изображения только в выбранном div, когда все имена div одинаковы.
<div class="collapse">img img img img img</div>
<div class="collapse">img img img img img img img</div>
<div class="collapse">img img img </div>
<div class="collapse">img img img img img img</div>
У меня есть данные изображений, установленные внутри тега data-src, и когда div расширяется, он загружает изображения. Однако, поскольку у div'ов одно и то же имя класса, когда он загружает изображения в расширенный div, он загружает все изображения во все свернутые div.
$(function() {
$('.collapse img').attr('src', function(index, src) {
return this.getAttribute('data-src');
});
});
Это код внутри моего кода расширения, как его можно изменить, чтобы загружать только изображения в текущем выбранном div?
Изменить - развернуть код:
$.fn.toggler = function(options) {
var o = $.extend({}, $.fn.toggler.defaults, options);
var $this = $(this);
$this.wrapInner('<a style="display:block; color: #fff; text-decoration: none;" href="#" title="Expand/Collapse" />');
if (o.initShow) {$(o.initShow).addClass('shown');}
$this.next(o.cllpsEl + ':not(.shown)').hide();
return this.each(function() {
var container;
(o.container) ? container = o.container : container = 'html';
if ($this.next('div.shown').length) { $this.closest(container).find('.shown').show().prev().find('a').addClass('open'); }
$(this).click(function() {
$(function() {
$('.collapse img').attr('src', function(index, src) {
return this.getAttribute('data-src');
});
});
$(this).find('a').toggleClass('open').end().next(o.cllpsEl)[o.method](o.speed);
return false;
});
});};
Изменить 2 - Как расширяется div. Извините, я все еще новичок на этом сайте. Должен был дать больше информации.
Это javascript вверху страницы:
<script type="text/javascript">
$(function() {
$("span.expand").toggler({method: "toggle", speed: 0});
});
</script>
Диапазон, по которому щелкают, чтобы развернуть div:
<span class="expand"> </span>
Диапазон настраивается в css для отображения изображения в качестве фона.
Изменить: нашел решение.
Я размещен:
$(this).find('a').toggleClass('open').end().next(o.cllpsEl)[o.method](o.speed);
Над кодом показа изображения, чтобы он сначала переключал его, прежде чем пытаться загрузить изображения, и изменил код изображения загрузки на:
$(function() {
$this.closest(container).find('.collapse:visible img').attr('src', function(index, src) {
return this.getAttribute('data-src');
});
});
Всем спасибо: P