Поддержка Проблемы и решения При подключении jQuery 1.6.2 и UI jQuery 1.8.15 в админке возникает

  • Есть WordPress 3.2.1

    Для произвольного поля дата страницы в админке нужно было сделать datepicker, так как в \wp-includes\js\jquery такого модуля не нашёл, то скачал с сайта последнюю версию jQuery UI, в листинге своего плагина я указал:

    /* Цепляем более новую библиотеку jquery 1.6.2*/
        wp_deregister_script('jquery');
        wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"), false, '1.6.2');
        wp_enqueue_script('jquery');  
    
    /* Цепляем код диалога и календарика */
        wp_register_script('jquery-ui-dialog.datepicker', (agro_tender_PLUGIN_URL."js/jquery-ui-1.8.15.dialog.datepicker.js"), false, '1.8.15');
        wp_enqueue_script('jquery-ui-dialog.datepicker');

    Столкнулся со следующей проблемой — всё работает, кроме конструктора Меню в разделе Внешний Вид, а точнее не работает drug-and-drop, консоль JS выдаёт вот такое сообщение:

    load-scripts.php:11 - Uncaught ReferenceError: jQuery is not defined
    
    jquery-ui-1.8.15.dialog.datepicker.js:29 - Uncaught TypeError: undefined is not a function

    Если оставить jquery 1.6.1 — который идёт по умолчанию в этой вервии WordPress то не работает datepicker, консоль JS выдаёт такую ошибку

    Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function

    Хотя на сайте http://jqueryui.com/ сказано что jQuery UI 1.8.15 должен работать с jQuery 1.3.2+

    Если у кого есть ссылка на jquery-ui datepicker.js совместимый с админкой WordPress 3.2.1 — буду признателен.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • туториалы (довольно свежие) видели? файлы, вроде, прилагаются.
    http://www.refactord.com/create-a-wordpress-meta-box-with-jquery-ui-datepicker
    http://www.zigpress.com/2011/04/27/jquery-ui-datepicker-in-wordpress-admin/

    vjpo спасибо за помощь, разобрался. В принципе я делал всё как по второй ссылке, только обратил внимание на код по которому к полю ввода добавляется календарик:

    jQuery(document).ready(function(){
    		jQuery('.mydatepicker').datepicker({
    			dateFormat : 'yy-mm-dd'
    		});
    	});

    А я код брал с сайта http://jqueryui.com — там вот такой пример:

    $(function() {
    		$( "#datepicker" ).datepicker();
    	});

    В этом то и была причина. В интернете нашёл что, чтобы работала функция $() в различных CMS лучше оборачивать JQuery скрипты вот в такую конструкцию:

    (function ($) {
      // All your code here
    }(jQuery))

    или везде менять $ на jQuery

    Так что теперь календарик версии jquery-ui-1.8.15 работает со стандартными библиотеками jQuery, которые имеются в WordPress 3.2.1. Всё работает без конфликтов.

    работает — вот и хорошо 🙂
    отрывок из Codex’а на тему jQuery noConflict wrappers

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «При подключении jQuery 1.6.2 и UI jQuery 1.8.15 в админке возникает» закрыта для новых ответов.