2016-08-03 2 views
0

Привет Я новичок в javascript/программировании, и я не могу найти разумное решение для сценария, который отвечает за предоставление параметров каждой фотогалерее. Сценарий работает нормально, но, как я писал, я думаю, что его можно упростить без повторения параметров. Существует только один параметр (селектор классов), который изменяется от каждого сценария галереи.Скрипт JQuery Gallery, передайте класс CSS как параметр функции

$(document).ready(function() { 
     $('.popup-gallery-wakipo').magnificPopup({ // HERE THE CLASS SELECTOR 
     delegate: 'a.gallery_portf', 
     type: 'image', 
     tLoading: 'Loading image #%curr%...', 
     mainClass: 'mfp-img-mobile', 
     gallery: { 
      enabled: true, 
      navigateByImgClick: true, 
      preload: [0,1] 
     }, 
     image: { 
      tError: '', 
      titleSrc: function(item) { 
      return item.el.attr('title') + ''; 
      } 
     } 
     }); 


     $('.popup-gallery-instacash').magnificPopup({ // HERE THE CLASS SELECTOR 
     delegate: 'a.gallery_portf', 
     type: 'image', 
     tLoading: 'Loading image #%curr%...', 
     mainClass: 'mfp-img-mobile', 
     gallery: { 
      enabled: true, 
      navigateByImgClick: true, 
      preload: [0,1] 
     }, 
     image: { 
      tError: '', 
      titleSrc: function(item) { 
      return item.el.attr('title') + ''; 
      } 
     } 
     }); 

и т.д ...

Так что вопрос в том, как модуляризует этот сценарий просто передать этот селектор класса в качестве параметра. Может быть, с Construtor Объект/метод, я пытался, но теряюсь заставить его работать

function Gallery (theclass){ 

    $('.' + theclass).magnificPopup({ 
     delegate: 'a.gallery_portf', 
     type: 'image', 
     tLoading: 'Loading image #%curr%...', 
     mainClass: 'mfp-img-mobile', 
     gallery: { 
     enabled: true, 
     navigateByImgClick: true, 
     preload: [0,1] 
     }, 
     image: { 
     tError: '', 
     titleSrc: function(item) { 
      return item.el.attr('title') + ''; 

     } 
     } 
    }); 

    } 

    var mySecondGallery = new Gallery("popup-gallery-wakipo"); 

    mySecondGallery(); 

ответ

0

Попробуйте это:

function gallery(class) { 
    return $("." + class).magnificentPopup({ 
    ... 
    }); 
} 
var mySecondGallery = gallery("popup-gallery-wakipo"); 

Вы затем получить доступ к объекту JQuery.

+0

Извините, я использовал, как это, и не работает. Здесь исходный файл JS: http://pastebin.com/tM002P5U – Dedalos01

+0

Вам нужен доступ к объекту jQuery, или это достаточно, если код только выполняется? – patrickcipot

+0

Я не уверен, что библиотека JS использует галерею: - /, я просто знаю, что этот скрипт заставляет его работать. И это задание, которое вы написали в строке las, его не нужно каким-то образом вызывать? Здесь HTML одной из галерей: http://pastebin.com/bqWATSpv узнайте класс в строке 4 – Dedalos01

Смежные вопросы