Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 24 Ответов
  • 1088 Просмотров
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Чудеса с jQuery
« : 27.08.2019, 14:49:07 »
[10:00] Звонит сегодня владелец сайтов:
- На 2х сайтах не работает модуль оплаты, клиенты звонят жалуются, последняя оплата прошла вчера в 17-00.

[10:10] Лезу смотреть - не работают события в jQuery.
так работает:
Код
(function ($) {
$(document).ready(function() {

  alert ('ohhh');

...

так не работает:
Код
(function ($) {
$(document).ready(function() {

$('#courseslist').change(function() {
  alert ('ohhh');
});

...

Модули одинаковые, делал я, работают не первый год.
j3.9.11 обновлял 23 августа
На сайты никто не лазил
Есть тестовые копии на поддоменах - та же история
Есть локальная копия на ОпенСервер, с j3.9.8  - тоже самое!

Итак, выяснили - откатываться бесполезно, хостинг тоже не причем.

Сторонние расширения почти родные: Akeeba, JCE, JLSitemap, Widgetkit (старый 3.9.2)
Шаблон самописный на базе мастер_2 (варп7)
jQuery подгружается из файла на сайте.

Ищу на локалке, чтобы ничего не уронить на рабочих ...

[12:00] РАБОТОСПОСОБНОСТЬ МОДУЛЕЙ ВОССТАНАВЛИВАЕТСЯ! САМА. ВЕЗДЕ.

У кого-нибудь есть соображения? что это было? :)
*

sivers

  • Живу я здесь
  • 2453
  • 333 / 0
Re: Чудеса с jQuery
« Ответ #1 : 27.08.2019, 15:00:53 »
Браузер обновился мож?

Попробуйте заменить это
Код
$('#courseslist').change(function() {
  alert ('ohhh');
});

на это
Код
$('#courseslist').bind('change', function() {
  alert ('ohhh');
});

и посмотреть в консоль js ошибок не забудьте
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Re: Чудеса с jQuery
« Ответ #2 : 27.08.2019, 15:04:29 »
Когда искал, пробовал в Chrome, Opera, Mozilla - не работало
В консоли все было чисто, никаких ошибок

Сейчас пробовать уже поздно ))) Все и так работает)
и до вчерашнего вечера тоже работало
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Чудеса с jQuery
« Ответ #3 : 27.08.2019, 16:17:31 »
А зачем 2 обертки на окончание загрузки ?
Код
(function ($) {
$(document).ready(function() {

$('#courseslist').change(function() {
  alert ('ohhh');
});
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Re: Чудеса с jQuery
« Ответ #4 : 27.08.2019, 17:12:06 »
А зачем 2 обертки на окончание загрузки ?
Привык)

Но к теме это отношения, похоже, не имеет ...

Хотелось бы версии бага. Блин, мне ничего в голову не приходит ..
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Чудеса с jQuery
« Ответ #5 : 27.08.2019, 18:06:29 »
на это
Код
$('#courseslist').bind('change', function() {
  alert ('ohhh');
});
Лучше использовать on(), тем более с версии 3.0 bind() уже deprecated.
так не работает:
Видимо, #courseslist меняется динамически, без on() нельзя триггерить события на вновь добавленых элементах.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Re: Чудеса с jQuery
« Ответ #6 : 27.08.2019, 18:21:19 »
... Видимо, #courseslist меняется динамически, без on() нельзя триггерить события на вновь добавленых элементах.
Хорошо. Но это не отвечает на вопрос:
почему работало до и почему стало работать после этого аномального бага?
как будто кто-то на время включил .unbind

Код далек от идеала, но он рабочий
если поможет - вот ссылка https://espanika.ru/oplata
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Чудеса с jQuery
« Ответ #7 : 27.08.2019, 18:33:42 »
[12:00] РАБОТОСПОСОБНОСТЬ МОДУЛЕЙ ВОССТАНАВЛИВАЕТСЯ! САМА. ВЕЗДЕ.

У кого-нибудь есть соображения? что это было?
внешний скрипт, который в 12 часов обновился и перестал ломать вам сайт?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Re: Чудеса с jQuery
« Ответ #8 : 27.08.2019, 18:37:14 »
А как быть с локалкой?
Цитировать
Есть локальная копия на ОпенСервер, с j3.9.8  - тоже самое!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Чудеса с jQuery
« Ответ #9 : 27.08.2019, 18:40:32 »
а на локалке у вас не выполняются внешние скрипты? живочат, например?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Re: Чудеса с jQuery
« Ответ #10 : 27.08.2019, 18:42:43 »
Нет.
живочат я на локалке убил.
и все метрики тоже

Причем, перестала работать не только форма оплаты, но и другие.
Например в подвале в форме отправки заявки, при выставлении галочки "Промокод", проявлялось поле для ввода. Эта фишка тоже сдохла ..
« Последнее редактирование: 27.08.2019, 18:54:53 от fbr »
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Re: Чудеса с jQuery
« Ответ #11 : 27.08.2019, 18:56:57 »
Вспомнил, на локалке не отключался скрипт  банка Тинькофф

<script src="https://securepay.tinkoff.ru/html/payForm/js/tinkoff_v2.js"></script>

может быть из-за него?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Чудеса с jQuery
« Ответ #12 : 27.08.2019, 19:08:13 »
ну а почему не может? мало ли что там было
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Re: Чудеса с jQuery
« Ответ #13 : 27.08.2019, 19:15:47 »
[10:00] Звонит сегодня владелец сайтов:
- На 2х сайтах не работает модуль оплаты, клиенты звонят жалуются, последняя оплата прошла вчера в 17-00.

[10:10] Лезу смотреть - не работают события в jQuery.
так работает:
Код
(function ($) {
$(document).ready(function() {

  alert ('ohhh');

...

так не работает:
Код
(function ($) {
$(document).ready(function() {

$('#courseslist').change(function() {
  alert ('ohhh');
});

...

Модули одинаковые, делал я, работают не первый год.
j3.9.11 обновлял 23 августа
На сайты никто не лазил
Есть тестовые копии на поддоменах - та же история
Есть локальная копия на ОпенСервер, с j3.9.8  - тоже самое!

Итак, выяснили - откатываться бесполезно, хостинг тоже не причем.

Сторонние расширения почти родные: Akeeba, JCE, JLSitemap, Widgetkit (старый 3.9.2)
Шаблон самописный на базе мастер_2 (варп7)
jQuery подгружается из файла на сайте.

Ищу на локалке, чтобы ничего не уронить на рабочих ...

[12:00] РАБОТОСПОСОБНОСТЬ МОДУЛЕЙ ВОССТАНАВЛИВАЕТСЯ! САМА. ВЕЗДЕ.

У кого-нибудь есть соображения? что это было? :)


Некоторые провайдеры, могут нагло подменять библиотеку jQuery. Пруфы:
https://pikabu.ru/story/kak_tele2_massovo_vnedryaet_svoi_skriptyi_na_saytyi_cherez_cdn_6888214
Проверьте себя с этой стороны)
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Чудеса с jQuery
« Ответ #14 : 27.08.2019, 19:17:05 »
подобные чудеса у меня буквально вчера были на нативном js, когда querySelector вместо нахождения элемента внутри элемента находил такой же элемент, но в другом похожем блоке, только последним встречающимся в dom

списал на обнову, которая прошла накануне у всех браузеров, и переписал с нуля по другому
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Re: Чудеса с jQuery
« Ответ #15 : 27.08.2019, 19:26:17 »
Некоторые провайдеры, могут нагло подменять библиотеку jQuery....
Ну провайдер ОпенСервер врядли что подменит, а то я ему ..))
А jQuery у меня не через cdn, а из файла на сайте, как я говорил

... списал на обнову, которая прошла накануне у всех браузеров, и переписал с нуля по другому
А можно чуть подробнее, что за массовая облава обнова? а то я не в курсе
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Чудеса с jQuery
« Ответ #16 : 27.08.2019, 21:56:38 »
А можно чуть подробнее, что за массовая облава обнова?
да ну стандартные обновы, когда браузер самообновляется, позавчера прилетели обновы на все 3 установленных браузера (кроме осла есно), что там в обновах - хз, уязвимости движка парсера и исполнения js я не чекаю, мож это в нём дело было? я просто обновил свой код и всё
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Чудеса с jQuery
« Ответ #17 : 28.08.2019, 20:04:30 »
А зачем 2 обертки на окончание загрузки ?
Код
(function ($) {
$(document).ready(function() {
На окончание загрузки одну вижу. И начало IIFE, вроде.

Внешний скрипт, который ломал, обновился. - не очень вяжется с "В консоли все было чисто, никаких ошибок"
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Чудеса с jQuery
« Ответ #18 : 28.08.2019, 20:12:33 »
На окончание загрузки одну вижу.
в мане jQuery написано что (function ($) { аналогично $(document).ready(function() {
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Чудеса с jQuery
« Ответ #19 : 28.08.2019, 20:18:54 »
в мане jQuery написано что (function ($) { аналогично $(document).ready(function() {
дайте, пожалуйста, ссылку, почитаю
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Чудеса с jQuery
« Ответ #21 : 28.08.2019, 20:36:35 »
Внешний скрипт, который ломал, обновился. - не очень вяжется с "В консоли все было чисто, никаких ошибок"
почему? ломать же не обязательно с фатальными ошибками. достаточно поработать с дом, и события перестанут отрабатывать

в мане jQuery написано что (function ($) { аналогично $(document).ready(function() {
вы путаете с jQuery(function(){})
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Чудеса с jQuery
« Ответ #22 : 28.08.2019, 21:28:17 »
вы путаете с jQuery(function(){})
п.с.
Не, я думал что у ТС 
Код
(function($) {

})(jQuery);
И тогда не нужно
Код
$(document).ready(function() {
« Последнее редактирование: 29.08.2019, 00:16:16 от draff »
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Re: Чудеса с jQuery
« Ответ #23 : 28.08.2019, 21:55:59 »
в мане jQuery написано что (function ($) { аналогично $(document).ready(function() {
function ($) - чтобы обеспечить локальное соответствие псевдонима $ и jQuery.

" ... передавая имя jQuery функции, которая определяет параметр $, мы тем самым гарантируем, что в теле функции имя $ будет ссылаться на jQuery" (с)

Попросил заказчика провентилировать у Тинькова на предмет работ в это время ... Если будет информация - отпишусь
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Re: Чудеса с jQuery
« Ответ #24 : 29.08.2019, 00:26:27 »
Добавьте ajaxStop, кроме основного кода
Код
$( document ).ajaxStop(function() {
$('#courseslist').change(function() {
  alert ('ohhh');
});
});
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

jquery против javascript

Автор gartes

Ответов: 0
Просмотров: 399
Последний ответ 21.11.2021, 12:04:14
от gartes
Joomla + Jquery + AJAX - кому интересно?

Автор beliyadm

Ответов: 14
Просмотров: 4358
Последний ответ 18.04.2015, 22:39:23
от beliyadm