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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Mavrikii

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

Цитата:
манипуляции с collapsible.js к результаму не привели,

я не знаю какие вы там манипуляции совершали, я вам указал на конкретный кусок кода, что вызывает эту прокрутку.  сначала прокручивается вверх, потом отображается новое содержимое таба. удалите кусок из первоначального файла или сделайте, чтобы if не выполнялся (добавив в него false &&, к примеру)
вот вам форматированный файл для игр
 

Код:
        activate: function() {
            if (this.options.disabled) {
                return;
            }
            if (this.options.animate) {
                this._animate(showProps);
            } else {
                if (false && this.content.length) {
                    this._scrollToTopIfVisible(this.content.get(0).parentElement);
                }
                this.content.show();
            }
            this._open();
        },

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

Всего записей: 15121 | Зарегистр. 20-09-2014 | Отправлено: 21:42 10-09-2019 | Исправлено: Mavrikii, 21:51 10-09-2019
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо, все работает!  
По поводу манипуляций - у magento довольно сложная структура файлов, я тупо искал по всей иерархии js файлы с названием collapsible - таких файлов само ядро magento содержит аж 4.  
Из них первые 2 гораздо меньше и отличаются от искомого по содержимому, и разные между собой, а еще 2 - большие, одинаковые между собой и включают в себя искомый код. И вот поначалу, найдя первый совпадающий файл, я тупо до второго не дошел... однозначно мой косяк..
В статику деплойятся 2 файла, один из маленьких, и один из больших.  
Ну вот я вообще удалял кусок кода, выключал вообще файл - никакой реакции, вообще не было.  
Только сейчас я еще раз внимательно все разобрал, и вот увидел второй файл, и после нужных изменений все работает как надо.  
Еще раз спасибо )

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 11:17 12-09-2019
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Скажите, мастер, как вы отловили, что именно в этом файле находится причина? Т.е. ведь ошибки не происходит, в консоли чисто,  а в ресурсах там такое количество файлов, как понять, в каком именно файле происходит та или иная обработка?
Если бы была ошибка или известен конкретный файл, то все понятно, пользоваться дебаггером в хроме чтобы найти место, вызывающее ошибку, или то или иное действие, проблем вроде особых нет.
Но блин, как среди такого числа скриптов обнаружить нужный с точностью 100%!
Просто вот на том же самом сайте происходит похожий скролл, только теперь уже не вверх, а вниз, и не связано с этими либо с другими табами: происходит строго после смены или добавления нового адреса доставки в процессе чекаута после клика по подтверждающей кнопке "изменить".  
Баг в самом высоком приоритете, хотелось бы разобраться, так как, во-первых, самому интересно, во-вторых, вряд ли кто то за меня будет на чужом сайте делать заказы для отслеживания бага ))

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 15:35 13-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
Панель разработчика в браузере, анализ о работников событий. Далее установка брейкпоинтов в нужных местах и пошаговый дебаг скрипта  - это все делается прямо в браузере.

Всего записей: 15121 | Зарегистр. 20-09-2014 | Отправлено: 17:12 13-09-2019
Weinaum



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

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 08:54 16-09-2019
Mavrikii

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

Цитата:
или они отслеживаются не в панели?

я же показывал на скриншоте ранее. есть закладка Listeners

Всего записей: 15121 | Зарегистр. 20-09-2014 | Отправлено: 19:41 16-09-2019
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Да, спасибо, хорошо, если не возражаете, просто для примера, вернемся к скроллу по клику на таб.  
Я вижу, и на вашем скрине, и реально во вкладке event listeners список скриптов, в которых есть обработка кликов на этой странице.  
Собственно, что я там вижу: jquery, bootstrap, скрипты на странице да от mouseflow - а файла collapsible.min.js - нет.  
Но ведь каким то образом вы его определили?

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 10:17 17-09-2019
WONDROUS



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Снова вопрос по этому таймеру. Иногда почему-то появляется точка сбоку круга (скрин), обычно слева, на секундах и микросекундах. Особенно это заметно на белом фоне и толщине круга от 10px. Все настройки толщины колец, цвета и прочего находятся в JS. Подскажите, пожалуйста, как исправить?

Всего записей: 3347 | Зарегистр. 30-06-2002 | Отправлено: 17:03 17-09-2019
Mavrikii

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

Всего записей: 15121 | Зарегистр. 20-09-2014 | Отправлено: 19:59 17-09-2019
WONDROUS



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
В Хром и Опере последних версий нормально всё, пробовал с разной толщиной кругов. В Сафари 11 это проявляется и в Фоксе 53 (последних версий нет, чтобы проверить).

Всего записей: 3347 | Зарегистр. 30-06-2002 | Отправлено: 22:40 17-09-2019 | Исправлено: WONDROUS, 23:32 17-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WONDROUS
ну так значит это проблема рендеринга браузерного движка.

Всего записей: 15121 | Зарегистр. 20-09-2014 | Отправлено: 23:21 17-09-2019
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
ну вот, единственное, что вывело меня на этот файл при анализе обработчиков - это tabs.min.js, но он не под click событиями, а под beforeOpen.  
То да, если на него вышел, то становится очевидным где искать.  
В принципе конечно все логично, но получается, что для того чтобы найти проблему клика, прошерстить приходится не только клик, но и другие события...
Я просто думал, что есть какой то более простой способ, более наглядный, что ли.. ну то есть делаешь клик по элементу и видишь какие обработчики сработали, после чего уже дебажишь нужные..

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 10:21 18-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
beforeOpen это пользовательское событие, не оригинальное.
Может быть не только клик, но и mousedown или mouseup
 
А отловить какой именно обработчик мешает или обрабатывает нужный эффект легко - их же можно удалять и смотреть что происходит. Либо вызывать самостоятельно через trigger из консоли.

Всего записей: 15121 | Зарегистр. 20-09-2014 | Отправлено: 11:34 18-09-2019 | Исправлено: Mavrikii, 11:38 18-09-2019
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Эх, было бы так легко, вы бы тут без вопросов были ))
Надеюсь, с опытом придет )

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 16:36 19-09-2019
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
снова пару вопросов появилось.
На странице имеется форма, форма эта в dom-е присутствует, но по дефолту скрыта display:none,   и подгружается аяксом после клика по некоторой кнопке.  
Хочу внести небольшое изменение в обработку отправления уже загруженной формы - т.е. форма подгрузилась аяксом, ее заполнили и после клика на "изменить" или "отмена" я хочу чуть изменить результат.
С кодом, что я хочу сделать, проблем нет, он простой, проверено в консоли - все ок

Код:
$.each($('.some-button'), (index, el) => {  
      $(el).on('click', () => {
       тут нужная мне обработка;
      });
    })

 но он не работает, если я пытаюсь его вызвать из файла извне данной формы - т.е. у меня есть один custom.js , в котором как обычно собраны все пользовательские скрипты. Все они нормально отрабатывают, кроме вот этого последнего.
При этом данный код нормально работает, если его вставить непосредственно в файлы формы.  
Как я понимаю, дело именно в аяксе. Не хотелось бы все таки вносить изменения в дефолтные файлы ядра cms, можно ли как то все таки заставить работать код извне?
 
 
И второй вопрос, покороче.  
Можно ли как то псевдо-элемент before или after сделать ссылкой, если это псевдоэлемент не ссылки? Например, я подгружаю лого как background для befor к ul списку меню - можно как то сделать так, чтобы это лого стало нужной мне ссылкой?
 

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 09:33 30-09-2019
Mavrikii

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

Цитата:
все таки заставить работать код извне

Этот файл грузится с другого домена? Или как вы его подключение, как вызываете? Что говорит консоль браузера?
 

Цитата:
лого стало нужной мне ссылкой?

Нет, это не задача css.

Всего записей: 15121 | Зарегистр. 20-09-2014 | Отправлено: 13:05 30-09-2019 | Исправлено: Mavrikii, 14:11 30-09-2019
Weinaum



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

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 16:15 30-09-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Weinaum
Значит на момент выполнения скрипта нужных элементов ещё нет в странице.
И теги скрипт, передаваемые через Ajax в HTML коде, не обрабатываются.

Всего записей: 15121 | Зарегистр. 20-09-2014 | Отправлено: 18:20 30-09-2019
Aleksandr N

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

Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 20:19 16-10-2019 | Исправлено: Aleksandr N, 20:33 17-10-2019
Hinzor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
привет, кто подскажет что не так тут? Спасибо:
<div class="locator">  
     
      <form name="locate">
      Please enter model type:
      <input type="text" name="model">
      <br>
      <input type="button" value="process" onClick="process()">
      <br>
      This model got following engine type & speed features:
      <input type="text" name="info" readonly="readonly">
      </form>
      <script type="text/javascript">
      function process()  
{  
   var model = parseInt(document.locate.zip.value), info = null;  
   if (model = R) info = 550 hp V8 / 3.8 s. to 60 mph &  11.6 s. to 122.2 mph;
   else if (model = S) info = 380 hp V6 / 5.0 to 60 mph & a quarter-mile time: 13.1 s. to 107.9 mph;
   else
      alert('Eror, please specify R or S only!');
   if (info != null)
      document.locate.info.value = info; }
      </script>    
  </div>

Всего записей: 45 | Зарегистр. 16-08-2007 | Отправлено: 05:40 21-10-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 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