@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)


Кто знает как это исправить ?
  • Вопрос задан
  • 1349 просмотров
Пригласить эксперта
Ответы на вопрос 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 используется для него
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы