Улучшение кода Featherlight.js: только один экземпляр Featherlight - PullRequest
0 голосов
/ 03 ноября 2019

Я использую featherlight.js для загрузки фрейма внутри лайтбокса перо. У меня есть календарь, и в зависимости от дня, который щелкнул, URL-адрес содержимого iframe меняется.

Пока мой код выглядит так:

    $('.eooEbookingCalendar').each(function() {
        $(this).on('click', 'td.bookable' ,function() {
            var uri = 'MyURLToIframeContent' + getQueryString($(this).closest('.eooEbookingCalendar')) + '&start_date=' + $(this).data('date');
            var fl = new $.featherlight(uri, getIframeOptions());
            fl.open();
        });
    });

getQueryString() и getIframeOptions() две небольшие пользовательские функции, которые не имеют прямого отношения к моей проблеме.

Что мне не нравится в этом коде, так это то, что он создает новый объект каждый раз, когда открывается перьевой лайтбокс. Поскольку изменяется только uri, я бы предпочел иметь только один объект с перьями и изменить uri внутри этой функции. К сожалению, я не нашел пример, как это сделать в документации. Большинство примеров связываются с использованием $('someselector').featherlight(), но мой URL-адрес зависит от того, где происходит щелчок, и кажется, что это возможно. Мой JS не слишком хорош, не стесняйтесь давать советы:)

С наилучшими пожеланиями Филипп

...