Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   MooTools и jQuery (https://javascript.ru/forum/misc/79069-mootools-i-jquery.html)

TRIGUN 13.12.2019 01:30

MooTools и jQuery
 
Решил установить на сайт (joomla 2.5) скрипт карты от CDEK.
В итоге в консоли ошибка:

Uncaught TypeError: #<Object> is not a function
    at Array.forEach (<anonymous>)
    at Function.forEach (mootools-core.js:33)
    at Array.each (mootools-core.js:40)
    at Object.trigger (widjet.js:290)
    at Object.trigger (widjet.js:35)
    at Object.onCalc [as success] (widjet.js:1029)
    at i (ipjq.js:2)
    at Object.fireWith [as resolveWith] (ipjq.js:2)
    at A (ipjq.js:4)
    at XMLHttpRequest.<anonymous> (ipjq.js:4)

widjet.js и ipjq.js - файлы виджета, соответственно.

Многие элементы работают на MooTools 1.4.5, и их нельзя отключать.
Есть ли варианты как исправить ошибку и всё подружить?

Ссылка на файлы виджета и инструкция по установке тут.
Страница сайта с проблемой тут.

рони 13.12.2019 02:06

TRIGUN,
порядок загрузки
1.jQuery один раз на страницу.
2.плагины jQuery
3. грузить MooTools и скрипты на основе MooTools после всех остальных скриптов.

TRIGUN 13.12.2019 02:22

Цитата:

Сообщение от рони (Сообщение 517401)
TRIGUN,
порядок загрузки
1.jQuery один раз на страницу.
2.плагины jQuery
3. грузить MooTools и скрипты на основе MooTools после всех остальных скриптов.

Я полностью отключал mootools и переподключал его в самом конце, но это не помогло. Ошибка все та же.
Если mootools подключен на странице, то виджет карты не работает.

ВОТ, например. Там обычная html-страница и на ней только виджет карты + mootools в самом конце.
И все тоже самое, как и на сайте.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Виджет SDEK</title> 
<script id="ISDEKscript" type="text/javascript" src="widjet.js"></script>
<script type="text/javascript">
    var ourWidjet = new ISDEKWidjet ({
        defaultCity: 'Новосибирск',
        cityFrom: 'Новосибирск',
        country: 'Россия',
        link: 'forpvz',
        path: 'scripts/',
        servicepath: 'scripts/service.php',
        apikey: '*******************'
    });
</script>
<script src="mootools-core.js" type="text/javascript"></script>
<script src="mootools-more.js" type="text/javascript"></script>
</head>
<body>
<div id="forpvz" style="width:100%; height:600px;"></div>
</body>
</html>

рони 13.12.2019 03:39

TRIGUN,
виджет грузит jQuery наступает конфликт.

TRIGUN 13.12.2019 03:47

Цитата:

Сообщение от рони (Сообщение 517403)
TRIGUN,
виджет грузит jQuery наступает конфликт.

Значит, нет варианта как все подружить?

рони 13.12.2019 03:53

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

TRIGUN 13.12.2019 03:54

Цитата:

Сообщение от рони (Сообщение 517405)
TRIGUN,
написать авторам виджета.
или отредактировать виджет самостоятельно,
или загрузить mootools с задержкой.

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

рони 13.12.2019 04:03

TRIGUN,
вдруг поможет :)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Виджет SDEK</title>

<script id="ISDEKscript" type="text/javascript" src="widjet.js"></script>
<script>
var ourWidjet = new ISDEKWidjet ({
        defaultCity: 'Новосибирск',
        cityFrom: 'Новосибирск',
        country: 'Россия',
        link: 'forpvz',
        path: 'scripts/',
        servicepath: 'scripts/service.php',
        apikey: '.......'
    });

</script>

</head>
<body>

<div id="forpvz" style="width:100%; height:600px;"></div>
<script>
window.setTimeout(function() {
document.body.insertAdjacentHTML('beforeEnd',
`<script src="https://cdnjs.cloudflare.com/ajax/libs/mootools/1.6.0/mootools-core.min.js" type="text/javascript"><\/script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mootools-more/1.6.0/mootools-more-compressed.js" type="text/javascript"><\/script>`)
}, 2000)
</script>
</body>

</html>

Vlasenko Fedor 14.12.2019 01:50

рони,
Он так не сможет, это Joomla
Ошибка вообще-то другая
ReferenceError: jQuery is not defined k2.js:9:11
Включите загрузку jQuery в настройках K2

рони 14.12.2019 02:11

Цитата:

Сообщение от Poznakomlus
Включите загрузку jQuery в настройках K2

если б я ещё знал, что это значит. :)


Часовой пояс GMT +3, время: 11:21.