Модуль:CheckboxHideSpacesuitHelmet

Материал из Space Station 14 Вики
Версия от 16:43, 14 июля 2024; Pok (обсуждение | вклад) (Тестовый модуль с JS)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Для документации этого модуля может быть создана страница Модуль:CheckboxHideSpacesuitHelmet/doc

local p = {}

function p.CheckboxHideSpacesuitHelmet(frame)
    local elementSelector = frame.args[1]

    -- Проверка входных данных
    if not elementSelector or not elementSelector:match("^%.%w+") then
        return "Invalid element selector"
    end

    -- Генерация HTML и JavaScript кода
    local html = mw.html.create('div')
    html:tag('script')
        :wikitext([[
            $(document).ready(function() {
                var elementSelector = "]] .. elementSelector .. [[";
                if (!$(elementSelector).length) {
                    return; // Если класса нет, выходим из функции
                }

                // Кэшируем выборку элементов
                var $elements = $(elementSelector);

                // Обработчик события для чекбокса
                $('#toggleHideAll').off('change').on('change', function() {
                    var isChecked = $(this).is(':checked');
                    // Изменение видимости элементов
                    $elements.each(function() {
                        var parentTr = $(this).closest('tr');
                        parentTr.toggle(!isChecked);
                    });
                });
            });
        ]])

    -- Возвращаем сгенерированный HTML и JavaScript
    return tostring(html)
end

return p