Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

Открыть новую тему     Написать ответ в эту тему

usertum



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Скорректировал ссылку.

Всего записей: 471 | Зарегистр. 01-07-2008 | Отправлено: 07:41 17-01-2024 | Исправлено: usertum, 07:44 17-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
usertum

Цитата:
Обновил ссылку.


Код:
var aLinks = document.querySelectorAll('div:not(.t228__rightside)');

это, разве, выбор ссылок?

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 07:46 17-01-2024
usertum



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да )
 
За основу был взят код # только он при добавлении метки не перезаписывает ее а добавляет, мне нужно было что бы при смене региона, происходила замена метки для всех ссылок за исключением ссылок в меню выбора региона.

Всего записей: 471 | Зарегистр. 01-07-2008 | Отправлено: 09:07 17-01-2024 | Исправлено: usertum, 17:01 18-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
usertum

Цитата:
Да )

я не вижу таких ссылок на странице, тем более <div> тегов с атрибутом href

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 09:52 17-01-2024
usertum



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можете подсказать на что нужно заменить?

Всего записей: 471 | Зарегистр. 01-07-2008 | Отправлено: 12:25 17-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
usertum

Цитата:
Можете подсказать на что нужно заменить?
 

вы серьезно?? в вашей же ссылке явно указано, что просто 'a', а что именно вы хотите - я не знаю.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 23:38 17-01-2024
usertum



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 

Код:
 
    <script type="text/javascript">
    function genTags(urlString) {
        var tags = {};
        var urlParts = urlString.split('?');
        if(urlParts.length > 1) {
            urlParts[1].split("&").forEach(function(tagString) {
                if(tagString.indexOf("s_") === -1 && tagString.indexOf("tfc_") === -1) {
                    var tagParts = tagString.split('=');
                    tags[tagParts[0]] = tagParts[1];
                }
            });
        }
        return tags;
    };
    function tagsToString(tags) {
        var tagArray = [];
        for(var tagName in tags) {
            tagArray.push(tagName + '=' + tags[tagName]);
        }
        return tagArray.join('&');
    }
    var pageTags = genTags(window.location.href);
 
    if (window.location.search.length > 1) {
        var aLinks = document.querySelectorAll('a');
        var arrayLinks = Array.from(aLinks);
        arrayLinks.forEach(function (el) {
            var href = el.getAttribute("href");
            if (href && href.indexOf("/") > -1 && href.indexOf("#") === -1) {
                var linkTags = genTags(href);
                var newTags = Object.assign(linkTags, pageTags);
                el.setAttribute("href", href.split('?')[0] + '?' + tagsToString(newTags));
            }
        });
    }
    </script>
 

 
Вот так добавление UTC к ссылкам работает, как сделать исключение (что бы метка не добавлялась) для блоков у которых указан класс uc-exception (добавил на тестовой странице).
 

Код:
 
<div id="rec693414699" class="r t-rec t-rec_pt_60 t-rec_pb_60 uc-exception" style="padding-top:60px;padding-bottom:60px; " data-record-type="106" ><!-- T004 --><div class="t004"><div class="t-container "><div class="t-col t-col_8 t-prefix_2"><div field="text" class="t-text t-text_md ">Блок - исключение<br /><a href="/test/">Исключение для UTC</a></div></div></div></div></div>
 

Всего записей: 471 | Зарегистр. 01-07-2008 | Отправлено: 09:09 18-01-2024 | Исправлено: usertum, 09:15 18-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
usertum

Цитата:
Вот так добавление UTC к ссылкам работает, как сделать исключение (что бы метка не добавлялась) для блоков у которых указан класс uc-exception (добавил на тестовой странице).
 

там есть сложности, если глубина потомка может быть любой.
поэтому для каждого a нужно проверять, что у него нет родителя с таким классом.
 

Код:
arrayLinks.forEach(function (el) {
   if (el.closest('.uc-exception')) return;
   // остальное ваше
 

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 10:28 18-01-2024
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую,  
что то опять туплю, подскажите направление как правильно реализовать
На странице товара - пример - в мобильном разрешении < 768 , после кнопки "add to cart" идет аккордион, реализованный по умолчанию таким образом, что  открытым может быть только один таб, таб этот нельзя закрыть по клику на него а можно только по клику на другой таб, который откроется и закроет предыдущий. Надо реализовать так, чтобы по клику таб закрывался если открыт, открывался если закрыт, клик по табу не задействовал бы соседние табы и табы могли бы быть все закрыты или все открыты без разницы.
Думал просто реализовать на .on('click') toggleClass для таба и toogle() для контента , но срабатывает только один первый раз - при последующих кликах ничего не происходит. Понимаю, что основной код не дает, если не ошибаюсь, это collapsible.js, но не пойму, как обойти. При этом чтобы не переписывать основные файлы, только добавлением своего кода.

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 14:43 26-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum

Цитата:
Думал просто реализовать на .on('click') toggleClass для таба и toogle() для контента

если у вас уже есть js обработка, то нужно изучать как она работает, ибо простым подобным кодом там не обойтись.
 

Цитата:
если не ошибаюсь, это collapsible.js,

да, это там.
 
вот это при клике убирает класс активного таба, прячет содержимое

Код:
forceDeactivate: function () {
    this.content.hide();
    this._close();
},

 
вызывается из tabs.js

Код:
        _closeOthers: function () {
            var self = this;
 
            $.each(this.collapsibles, function () {
                $(this).on('beforeOpen', function () {
                    self.collapsibles.not(this).collapsible('forceDeactivate');
                });
            });
        },


Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 01:38 27-01-2024
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
спасибо, как вызывается я разобрался.
Т.е. мне, чтобы изменить обработку по клику, нужно сначала отменить выполнение forceDeactivate, верно?  
Вот как это сделать, я пока не понимаю.

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 10:51 29-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum

Цитата:
Вот как это сделать, я пока не понимаю.

изучать https://developer.adobe.com/commerce/frontend-core/javascript/jquery-widgets/tabs/
единственный вариант "противодействия", без изменения кода, как мне кажется, только добавления обработчка на beforeOpen, запоминать какой открывается.. и далее, при следующем вызове, брать предыдущий таб и восстанавливать его через forceActivate, запоминая новый таб что будет открываться.
https://developer.adobe.com/commerce/frontend-core/javascript/jquery-widgets/collapsible/
 
правда тогда может мигать слегка. и раз много, то нужно все открытые помнить, массив держать.
 
ps: точнее на dimensionsChanged, наверно

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 11:04 29-01-2024 | Исправлено: Mavrikii, 11:16 29-01-2024
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
понятно, сейчас пробую, легче все же кастомизировать дефолтные скрипты, в принципе, возможность такая есть и collapsible и tabs.

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 14:55 29-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum

Цитата:
легче все же кастомизировать дефолтные скрипты, в принципе, возможность такая есть и collapsible и tabs

не нужно.. обновится шаблон или движок - все изменения могут слететь.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 20:24 29-01-2024
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
нет, не слетят - меняю не напрямую в ядре, а в кастомной теме, есть простая возможность.

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 09:05 30-01-2024
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Еще один момент, если можно, в том же примере -  
если кликнуть и открыть последний таб, происходит скролл наверх, не могу отыскать, где это прописано в коде. Несколько scrolltotop нашел, все не то.  
 
upd.  
Все, нашел

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 15:52 05-02-2024 | Исправлено: Weinaum, 16:46 05-02-2024
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
приветствую, вопрос опять, на странице, чуть ниже начала, два slick слайдера.
Почему-то при загрузке элементы сначала выстраиваются в один ряд вертикально, и только после полной загрузки нормально в линию. Возможно, тут в css проблема, но я не вижу где.

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 11:00 07-02-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
это типичное поведение для слайдеров, только просто элементы прячут, обычно, на момент загрузки, тем или иным способом. ведь для того, чтобы начать отрисовывать их горизонтально, сначала весь родитель, должен погрузиться.
 
https://github.com/kenwheeler/slick/issues/3564

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 11:13 07-02-2024
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
спасибо, да, спрятать можно, это единственное, что мне приходило в голову.  
Я как то думал, что разработчики как то видят эту проблемку.  
Если прячу, проблема в том, что скачки контента на странице всё равно остаются. Ну то есть контейнер для слайдера скачет по высоте.  
Я так понимаю, что зарезервировать нужную высоту в принципе можно, сейчас попробую.

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 12:30 07-02-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum

Цитата:
Я так понимаю, что зарезервировать нужную высоту в принципе можно, сейчас попробую.

достаточно прятать все, кроме первой, пока не загрузится.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 22:18 07-02-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

Компьютерный форум Ru.Board » Интернет » Web-программирование » вопросы по javascript


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru