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

CriZtmb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
TypeError: $ is not a function [Решено]
« : 20.05.2019, 21:35:55 »
Народ, привет! В общем вот такой вопрос. Нужно мне на одном сайте разместить скрипт. Не так давно понадобилось то же самое и здесь подсказали как быть. В общем решил я и в этот раз скрипт тем же способом подключить. Т.е. сперва создал модуль с этим кодом:
Код
<div data-id_form="1467"></div>
<script type="text/javascript">
var $ = jQuery ;
</script>
<script src="https://forma1.ru/js/uzform.min.js?komp=nok" defer></script>
Вывел его на нужной странице и вроде форма грузится, но не отправляется. На другом сайте с теми же манипуляциями все норм, а здесь при щелчке на кнопку отправить ошибка: TypeError: $ is not a function.
Вот пациент: https://tver-domprestarelyx.ru/uslugi-i-tseny/nezavisimaya-otsenka-kachestva-okazaniya-uslug.html
Там видно в консоли что конфликт в подключаемом скрипте. Можно это как то исправить по легкому или только в самом подключаемом скрипте что менять. Или может отключить какой скрипт на сайте?
« Последнее редактирование: 21.05.2019, 00:03:27 от CriZtmb »
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: TypeError: $ is not a function
« Ответ #1 : 20.05.2019, 22:08:46 »
Если "модуль" - это именно полноценный модуль, а не Custom HTML, то достаточно добавить в него
Код
<?php JHtml::_('jquery.framework'); ?>
для загрузки jQuery средствами самой Joomla!
*

CriZtmb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: TypeError: $ is not a function
« Ответ #2 : 20.05.2019, 22:47:18 »
Не, у меня как раз Custom HTML через расширения - модули -HTML-код.
*

videoruslan

  • Захожу иногда
  • 85
  • 2 / 1
Re: TypeError: $ is not a function
« Ответ #3 : 20.05.2019, 22:49:00 »
Оработка плагинами включена? В модуле
*

sivers

  • Живу я здесь
  • 2462
  • 335 / 0
Re: TypeError: $ is not a function
« Ответ #4 : 20.05.2019, 22:53:08 »
В общем решил я и в этот раз скрипт тем же способом подключить.
В тот раз решение было для конкретной страницы именно того сайта. А на этом сайте у вас мутулса нет - можно вообще noconflict не подключать. и проблемы с формой тогда не будет.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

CriZtmb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: TypeError: $ is not a function
« Ответ #5 : 20.05.2019, 23:00:33 »
Оработка плагинами включена? В модуле
И так и так пробовал. Не пашет
*

CriZtmb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: TypeError: $ is not a function
« Ответ #6 : 20.05.2019, 23:02:34 »
В тот раз решение было для конкретной страницы именно того сайта. А на этом сайте у вас мутулса нет - можно вообще noconflict не подключать. и проблемы с формой тогда не будет.
noconflict я и не прописывал. Там уже стоял подключенный <script src="/media/jui/js/jquery-noconflict.js?475f8800d34d28bd947ddadf5396aa7a" type="text/javascript"></script> в head, также как и на другом сайте где подобная конструкция работает
« Последнее редактирование: 20.05.2019, 23:14:57 от CriZtmb »
*

sivers

  • Живу я здесь
  • 2462
  • 335 / 0
Re: TypeError: $ is not a function
« Ответ #7 : 20.05.2019, 23:13:24 »
тогда уберите defer из подключения скрипта:
Код
<script src="https://forma1.ru/js/uzform.min.js?komp=nok" defer></script>

а это перед ним оставьте как есть
Код
var $ = jQuery ;
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

CriZtmb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: TypeError: $ is not a function
« Ответ #8 : 20.05.2019, 23:22:32 »
Да это я экспериментирую. И без defer не работает. Там странность я писал вот в чем: форма грузится, но не отправляется.
*

sivers

  • Живу я здесь
  • 2462
  • 335 / 0
Re: TypeError: $ is not a function
« Ответ #9 : 20.05.2019, 23:29:13 »
а потому что где-то после ее загрузки отрабатывает noconflict и отключает $, который используется формой.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

CriZtmb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: TypeError: $ is not a function
« Ответ #10 : 21.05.2019, 00:00:31 »
В общем решил проблемку. В модуле добавил
Код
<script type="text/javascript">
$ = jQuery.noConflict(true);
</script>
и все заработало
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: TypeError: $ is not a function [Решено]
« Ответ #11 : 21.05.2019, 07:14:05 »
Если честно, то как-то странно, что $=jQuery не работало, а $=jQuery.noConflict(true) заработало. Переменная jQuery должна быть либо объявлена (и тогда работают оба способа), либо нет (и тогда ни один из них не работает, просто текст ошибки будет другой).
*

CriZtmb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: TypeError: $ is not a function [Решено]
« Ответ #12 : 21.05.2019, 09:51:51 »
Да я тоже удивлен. Но главное работает как надо, все отправляется. Мне нормально
*

sivers

  • Живу я здесь
  • 2462
  • 335 / 0
Re: TypeError: $ is not a function [Решено]
« Ответ #13 : 21.05.2019, 09:59:43 »
Если честно, то как-то странно
там глупость допущена в самом скрипте uzform, который подключается с внешнего ресурса. В нем в самом начале наличие jQuery на странице определяется по доступности объекта jQuery, а дальнейшее обращение к объекту идет через $. Но после отработки noConflict jQuery есть, а $ нет. Дальше автор начинает костылить повторное объявление $ вручную, но из-за разного времени срабатывания скриптов у него вылазят все эти неприятные лаги.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

CriZtmb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: TypeError: $ is not a function [Решено]
« Ответ #14 : 21.05.2019, 11:07:42 »
Дальше автор начинает костылить повторное объявление $ вручную, но из-за разного времени срабатывания скриптов у него вылазят все эти неприятные лаги.
Ну мне главное чтоб заработало: костыли, не костыли - не столь принципиально. Скрипт uzform править возможности нет: им занимаются сторонние разработчики. Да и делают они все тааааак медленно: месяц пройдет прежде чем что-то поправят, а форма, подгружаемая скриптом должна работать сразу после установки. Вот и приходится костылить


*

sivers

  • Живу я здесь
  • 2462
  • 335 / 0
Re: TypeError: $ is not a function [Решено]
« Ответ #15 : 21.05.2019, 11:11:56 »
Ну мне главное чтоб заработало
Пожалуй, было б надежней выпилить noConflict со страницы. Это можно попробовать сделать в индексе шаблона (или в плагине) командой
unset($this->_scripts['/media/jui/js/jquery-noconflict.js']);
ПОСЛЕ подключения жумлавого jquery
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

CriZtmb

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: TypeError: $ is not a function [Решено]
« Ответ #16 : 21.05.2019, 11:18:48 »
Попробую сегодня вечерком.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: TypeError: $ is not a function [Решено]
« Ответ #17 : 21.05.2019, 11:36:27 »
Пожалуй, было б надежней выпилить noConflict со страницы. Это можно попробовать сделать в индексе шаблона (или в плагине) командой
unset($this->_scripts['/media/jui/js/jquery-noconflict.js']);
ПОСЛЕ подключения жумлавого jquery
для этого достаточно грамотно подключить сам jq:
Код: php
<?php Joomla\CMS\HTML\HTMLHelper::_('jquery.framework', false, null, false); ?>
первое false как раз отключает noconflict, второе (последнее) false отключает jquery-migrate
« Последнее редактирование: 21.05.2019, 11:41:57 от AlekVolsk »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка 0 Call to undefined function GuzzleHttp\choose_handler()

Автор Alllex

Ответов: 0
Просмотров: 134
Последний ответ 15.03.2024, 21:03:09
от Alllex
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 535
Последний ответ 06.02.2024, 12:42:26
от AlexP750
[Решено] Ссылка на домен и текущий шаблон в блоге категории

Автор goga_pgasovav

Ответов: 2
Просмотров: 350
Последний ответ 06.03.2023, 16:30:23
от goga_pgasovav
[Решено] Не добавляется CSS-класс страницы

Автор Strelok760

Ответов: 16
Просмотров: 1313
Последний ответ 02.03.2023, 16:14:47
от Танита Сар
[Решено] Получить список тегов каждого материала в блоге категории

Автор goga_pgasovav

Ответов: 1
Просмотров: 402
Последний ответ 02.03.2023, 14:20:21
от goga_pgasovav