В настоящее время у меня есть этот код:
$(document).ready(function(){
// #filtertab-00 replace this with your element id
$('#filtertab-00 .box-content .es-nav .elastislide-next, #filtertab-00 .box-content .es-nav .elastislide-prev').click(function() {
// trigger lazy load
$("#filtertab-00 img.lazy").each(function(i) {
$(this).delay(150*i).fadeIn(1000, function() {
var src = $(this).attr("data-original");
$(this).attr('src',src);
});
});
});
});
и я хочу использовать эту функцию для целевых имен объектов (id), как показано ниже:
filtertab-00
filtertab-10
filtertab-20
filtertab-30
filtertab-40
filtertab-50
filtertab-60
....
filtertab-90
Кто-нибудь знает, как использовать функцию цикла, чтобы заставить ее работать?
я просто хочу это: когда я нажму кнопку pre или next после выбора вкладки (имя варьируется от filtertab-00 до filtertab-90), оно активирует lazyloading для изображений на текущей выбранной вкладке.
любая идея приветствуется!
Возможно, вы можете использовать атрибут jQuery-start-with-selector. Затем вы можете просто выбрать все идентификаторы, которые начинаются с filtertab-
с помощью jQuery следующим образом:
$('div[id^="filtertab-"]').each( //magic goes here );
Примечание. Этот метод работает медленно, поскольку он должен искать DOM для элементов с идентификаторами, которые соответствуют критериям, но он выполняет эту работу. Я никогда не замечал заметной задержки.
Это решается с помощью селекторной магии, описанной как filoxo, но так как вы хотите изображения, вот еще одна версия, включающая find()
чтобы получить ваши фактические изображения.
$('div[id^="filtertab-"]').find("img.lazy").each(function(i) {
$(this).delay(150*i).fadeIn(1000, function() {
var src = $(this).attr("data-original");
$(this).attr('src',src);
});
});
В дополнение к этому, просмотрите впечатляющий список селекторов jQuery. Они покрывают много земли :)