2015-09-02 4 views
0

У меня возникли проблемы с моим лайтбокса, который устанавливается и работает на http://upsidecreative.com.au/index-new.htmlцелевые Jquery отдельные элементы с таким же классом для лайтбокса

Проблема в том, каждый лайтбокс полное изображение имеет класс .boximage и когда я нажимаю на эскизе (класс .lightbox) выполнит код ...

$('.lightbox').click(function(){ 
     $('.backdrop, .box, .boximage').css('display', 'block'); 
    }); 

(.backdrop является серым цветом фона позади осветителя и .box это окно, которое имеет изображение и заголовок внутри него а также кнопка закрытия)

Он работает так, что он изменяет отображение полного изображения лайтбокса с «none» на «block», но он отображает все изображения сразу, так как все они имеют класс .boximage.

Есть ли способ настроить таргетинг на каждое отдельное лайтбокс с полным изображением здесь, чтобы отобразить правильный вариант?

Большое спасибо, Грег

+0

Я теперь получил эту работу, благодаря DinoMyte, однако, исправление убил другую функциональность закрытия лайтбокс полное изображение, нажав на фоне (.backdrop) или кнопка закрытия (.close) \t $ (». закрыть '). выберите (функция() { \t \t \t $ ('. фон, .box, .boximage '). css (' display ',' none '); \t \t}); \t \t \t \t $ ('задник '). Щелчка (функция() { \t \t \t \t \t \t $ ('. Фон, .box, .boximage '). CSS (' дисплей', «ни один '); \t \t \t \t}); –

ответ

0

Попробуйте использовать:

$('.lightbox').click(function() 
{ 
    $(this).find('.backdrop, .box, .boximage').css('display', 'block'); 
}); 

Это целевой элемент '.lightbox', который вызывается функция.

EDIT:

Основываясь на структуре вашего DOM, это то, что вы можете сделать для всех событий щелчка.

$('.lightbox').click(function() { 
    /* Assigns the unique generated id of the element in the DOM to a variable called id. */ 
      var id = $(this)[0].uniqueNumber; 
    // Iterate through each item and find the corresponding element in the DOM with the same unique id. 
      $(this).parent().parent().find('.lightbox').each(function() { 
       if ($(this)[0].uniqueNumber == id) { 
    // If match is found, search for elements with the following css and show them. 
        $(this).find('.box, .boximage').css('display', 'block'); 
        return false; 
       } 
      }); 
     }); 

Чтобы скрыть элементы с «поле» и «» boximage классов,

 $('.close').click(function() { 

      var id = $(this).parent()[0].uniqueNumber; 

      $(this).parent().parent().find('.box').each(function() { 
       if ($(this)[0].uniqueNumber == id) { 
        $(this).find('.box, .boximage').css('display', 'none'); return false; 
       } 
      });  
     }); 
+0

Поцарапайте это, я положил все это в ссылку , и он работает. Спасибо DinoMyte, отличная работа! (изначально у меня был палец в , а затем полное изображение в

+0

Просто интересно ... Это работает для отображения правильного полного изображения лайтбоксов, но оно убило другие функции (которые закрывали лайтбокс, когда фоном или закрытием 'x' был нажат). Другие идеи Другой javascript ... $ ('. close').нажмите (функция() { \t \t \t $ ('фон, .box, .boximage.) CSS (' дисплей', 'ни');. \t \t}); \t \t \t \t $ ('задник '). Щелчка (функция() { \t \t \t \t \t \t $ ('. Фон, .box, .boximage '). CSS (' дисплей', «ни один '); \t \t \t \t}); –

+0

Конечно. Рад, что смог помочь. – DinoMyte