@zeni1agent

Как подключить к wordpress jquery-ui.min.js?

У меня возникла проблема я не могу нормально подключить jquery-ui.min.js
при попытке подключить код он выдает вот такую ошибку

jquery-ui.min.js:13 Uncaught TypeError: c.curCSS is not a function
at HTMLDivElement. (jquery-ui.min.js:13)
at jquery.js?ver=1.12.4:2
at Function.grep (jquery.js?ver=1.12.4:2)
at j (jquery.js?ver=1.12.4:2)
at a.fn.init.filter (jquery.js?ver=1.12.4:2)
at a.fn.init.scrollParent (jquery-ui.min.js:13)
at b.(/wor/ru/2019/02/18/test-video-ponorama-2/anonymous function).(anonymous function)._mouseStart (localhost/wor/wp-content/themes/me_theme_test/code...
at b.(/wor/ru/2019/02/18/test-video-ponorama-2/anonymous function).(anonymous function)._mouseMove (localhost/wor/wp-content/themes/me_theme_test/code...
at HTMLDocument._mouseMoveDelegate (jquery-ui.min.js:24)
at HTMLDocument.dispatch (jquery.js?ver=1.12.4:2)


Если я подключаю дополнительно jquery.min.js. То код работает нормально но конфликтует со встроенным jquery вордпреса


functions.js?ver=20150315:29 Uncaught TypeError: button.on is not a function
at functions.js?ver=20150315:29
at functions.js?ver=20150315:39
at functions.js?ver=20150315:210
(anonymous) @ functions.js?ver=20150315:29
(anonymous) @ functions.js?ver=20150315:39
(anonymous) @ functions.js?ver=20150315:210
js_code_theme.js:4 Uncaught TypeError: $(...).on is not a function
at HTMLDocument. (js_code_theme.js:4)
at Function.ready (jquery.min.js:26)
at HTMLDocument.L (jquery.min.js:33)
(anonymous) @ js_code_theme.js:4
ready @ jquery.min.js:26
L @ jquery.min.js:33
scripts.js?ver=16.16.4:36 Uncaught TypeError: jQuery(...).on is not a function
at scripts.js?ver=16.16.4:36
at dispatch (jquery.js?ver=1.12.4:2)
at y.handle (jquery.js?ver=1.12.4:2)
(anonymous) @ scripts.js?ver=16.16.4:36
dispatch @ jquery.js?ver=1.12.4:2
y.handle @ jquery.js?ver=1.12.4:2
load (async)
add @ jquery.js?ver=1.12.4:2
a.event.add @ jquery-migrate.min.js?ver=1.4.1:2
(anonymous) @ jquery.js?ver=1.12.4:2
each @ jquery.js?ver=1.12.4:2
each @ jquery.js?ver=1.12.4:2
De @ jquery.js?ver=1.12.4:2
on @ jquery.js?ver=1.12.4:2
bind @ jquery.js?ver=1.12.4:2
a.fn.(anonymous function) @ jquery-migrate.min.js?ver=1.4.1:2
(anonymous) @ scripts.js?ver=16.16.4:35
three.js:21934 THREE.WebGLRenderer 96
jquery.js?ver=1.12.4:2 Uncaught TypeError: jQuery(...).on is not a function
at rcl_init_ajax_tab (scripts.js?ver=16.16.4:46)
at core.js?ver=16.16.4:34
at Array.forEach ()
at rcl_do_action (core.js?ver=16.16.4:33)
at HTMLDocument. (scripts.js?ver=16.16.4:32)
at l (jquery.js?ver=1.12.4:2)
at c (jquery.js?ver=1.12.4:2)
rcl_init_ajax_tab @ scripts.js?ver=16.16.4:46
(anonymous) @ core.js?ver=16.16.4:34
rcl_do_action @ core.js?ver=16.16.4:33
(anonymous) @ scripts.js?ver=16.16.4:32
l @ jquery.js?ver=1.12.4:2
c @ jquery.js?ver=1.12.4:2
setTimeout (async)
w.readyException @ jquery.js?ver=1.12.4:2
(anonymous) @ jquery.js?ver=1.12.4:2
l @ jquery.js?ver=1.12.4:2
c @ jquery.js?ver=1.12.4:2
setTimeout (async)
(anonymous) @ jquery.js?ver=1.12.4:2
u @ jquery.js?ver=1.12.4:2
fireWith @ jquery.js?ver=1.12.4:2
fire @ jquery.js?ver=1.12.4:2
u @ jquery.js?ver=1.12.4:2
fireWith @ jquery.js?ver=1.12.4:2
c @ jquery.js?ver=1.12.4:2
setTimeout (async)
(anonymous) @ jquery.js?ver=1.12.4:2
u @ jquery.js?ver=1.12.4:2
fireWith @ jquery.js?ver=1.12.4:2
fire @ jquery.js?ver=1.12.4:2
u @ jquery.js?ver=1.12.4:2
fireWith @ jquery.js?ver=1.12.4:2
ready @ jquery.js?ver=1.12.4:2
_ @ jquery.js?ver=1.12.4:2


Я уже пытался и удалять оригинальный jquery и перестанавливать его
add_action( 'wp_enqueue_scripts', 'jquery_script_method' );
function jquery_script_method() {
	wp_deregister_script( 'jquery' );
	wp_register_script( 'jquery', get_template_directory_uri() . '/code/js/jquery.min.js', false, null, false );
	wp_enqueue_script( 'jquery' );	
wp_enqueue_script( 'jquery_ui', get_template_directory_uri() . '/code/js/jquery-ui.min.js',array( 'jquery' ), null, false);	
}


и встраивать через wp_head
add_action( 'wp_head', 'my_wp_custom_code', 9999 );
function my_wp_custom_code() {
echo '<script src="' . get_template_directory_uri() . '/code/js/jquery.min.js" type="text/javascript"></script>';
echo '<script src="' . get_template_directory_uri() . '/code/js/jquery-ui.min.js" type="text/javascript"></script>';
}


и просто через тег script в файле content.php

и совмещал jquery и jquery-ui в один js файл

Не помогло

так же я пытался обновить
jquery с v1.10.2 до v3.3.1
jquery-ui с 1.8.2 до v1.12.1
появилась ошибка
Uncaught TypeError: e.indexOf is not a function
at w.fn.init.w.fn.load (jquery.min.js:2)
at functions.js?ver=20150315:149
at functions.js?ver=20150315:210

jquery-migrate-3.0.1.js исправил ошибку Uncaught TypeError: e.indexOf is not a function
но ошибка в jquery-ui осталась

Сейчас у меня высвечивается лишь ошибка. Которая перестала меняться.

Uncaught TypeError: Cannot read property 'safari' of undefined
at b.(/wor/ru/2019/02/20/%d0%b4%d0%be/anonymous function).(anonymous function)._mouseDown (localhost/wor/wp-content/themes/me_theme_test/code...
at HTMLDivElement. (jquery-ui.min.js:22)
at HTMLDivElement.dispatch (jquery.min.js:5)
at HTMLDivElement.v.handle (jquery.min.js:5)
_mouseDown @ jquery-ui.min.js:24
(anonymous) @ jquery-ui.min.js:22
dispatch @ jquery.min.js:5
v.handle @ jquery.min.js:5
jquery-ui.min.js:24 Uncaught TypeError: Cannot read property 'msie' of undefined
at b.(/wor/ru/2019/02/20/%d0%b4%d0%be/anonymous function).(anonymous function)._mouseMove (localhost/wor/wp-content/themes/me_theme_test/code...
at HTMLDocument._mouseMoveDelegate (jquery-ui.min.js:24)
at HTMLDocument.dispatch (jquery.min.js:5)
at HTMLDocument.v.handle (jquery.min.js:5)


Кто знает как это исправить ?
  • Вопрос задан
  • 1268 просмотров
Пригласить эксперта
Ответы на вопрос 3
jquery-ui есть в списке штатных скриптов. Может для Вас будет достаточно просто указать зависимость при подключении Вашего
Список штатных скриптов можно увидеть здесь
Ответ написан
Отвечаю на вопрос как подключить, вот так:
wp_enqueue_script( 'scripts-query', get_template_directory_uri() . '/assets/js/jquery-ui.min.js',array( 'jquery' ), null, true);


где '/assets/js/jquery-ui.min.js' - путь к файлу на вашем хостинге
get_template_directory_uri() - путь до вашей темы
это загрузка в футере, если нужна в хедере, то вместо true, напишите false

размещать в functions.php но наверно Вы это уже знаете

Если вопрос как отключить встроенный скрипт:
Вам уже подсказали, замечу только, что отключать надо:
--- смотрите файл ---
functions.wp-scripts.php
$no = array(
			'jquery', 'jquery-core', 'jquery-migrate', 'jquery-ui-core', 'jquery-ui-accordion',
			'jquery-ui-autocomplete', 'jquery-ui-button', 'jquery-ui-datepicker', 'jquery-ui-dialog',
			'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-menu', 'jquery-ui-mouse',
			'jquery-ui-position', 'jquery-ui-progressbar', 'jquery-ui-resizable', 'jquery-ui-selectable',
			'jquery-ui-slider', 'jquery-ui-sortable', 'jquery-ui-spinner', 'jquery-ui-tabs',
			'jquery-ui-tooltip', 'jquery-ui-widget', 'underscore', 'backbone',
		);
Ответ написан
Комментировать
azerphoenix
@azerphoenix
Java Software Engineer
1) сделать deregister_script() jquery по умолчанию
2) подключить свой jquery через functions.php
3) подключить jquery-ui через functions.php

p.s. чтобы найти handle текущего jquery используйте плагин query monitor. Посмотрите, какой handle используется для него
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы