Intereting Posts
Quick Edit Комментарии к программе Front End Установка шаблона WordPress по умолчанию Могу ли я обновить WordPress 2.9.2. до 3.0.4 от администратора Как я могу переместить данные из формы 1 в форму 2 Метод автоматической проверки доставки Перенаправление категории ссылки на первую должность Как включить иконки спрайтов SVG в тег тела? WP таксономия регистра Администратора и производительность типа сообщения Как я могу изменить регистрационный код? использовал wp_get_attachment_image () в цикле, чтобы отобразить страницу галереи пользовательского типа изображений, и теперь изображения не будут удалять f Периодическая оплата Molpay в WordPress add_query_arg для сравнения и отображения событий с определенной даты Рекомендуемая ширина боковой панели / содержимого Как получить фид для страницы «Тип страницы»? Экспорт и импорт моей базы данных WordPress, но ни один из параметров плагина не импортирует

Конфликт JQuery

Я пытался и пытался исправить проблемы с jquery. У меня в заголовке много jquery. Я использую его для слайдера и других вещей, которые встроены в эту тему. Я не могу добавить ничего, что использует jquery из-за конфликта. Мне нужна помощь. Доска – www.cgwhat.com. Забытый пароль – jquery, а ползунок также управляется jquery. Я хотел добавить еще один плагин, но не могу из-за конфликта. Также с запомненным паролем jquery. Мне нужно знать, что не так, и как это исправить. Если я удалю вызовы в javascript в заголовке, он будет исправлен. Забытый пароль работает, но все остальное ломается.

<?php wp_enqueue_script("jquery"); ?> <?php wp_head(); ?> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.equalHeight.js"></script> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/flashobject.js"></script> <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.js"></script> <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.jcarousel.js"></script> <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.actions.js"></script> <script type="text/javascript"> jQuery(document).ready(function($){ var fC=$('#features-nav .features-nav-item').length; curS=1; var cInt=0; cInt=setInterval(function(){ $('#features-nav .features-nav-item:eq('+curS+')').addClass('current').trigger('click'); curS++; if(curS>=fC) curS=0; },10000);}); </script> </head> 

По крайней мере, одна проблема, которую я вижу, заключается в том, что вы включаете структуру jQuery не менее двух раз. Первая строка

 <?php wp_enqueue_script("jquery"); ?> 

Является предпочтительным методом включения jQuery. Ваша установка WordPress включает в себя версию jQuery 1.4.2. Это позволяет хорошим разработчикам плагинов и тем, чтобы использовать jQuery и не случайно включать его вручную несколько раз.

Но у вас также есть (в строке 6)

 <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.js"></script> 

Что включает jQuery 1.2.6. Может быть, один из ваших плагинов пытается это сделать? Или, возможно, это сгенерировано в вашей теме (в этом случае вы можете удалить ее, считая, что ваши плагины совместимы со встроенной версией jQuery, которая является версией 1.4.2.

После устранения этой проблемы любые другие ошибки javascript могут быть изолированы от конкретного сценария или плагина.

EDIT: Дополнительная информация …

Теперь, когда вы удалили дополнительный jquery, возникла другая ошибка. Используя Firebug или отладчик Chrome или другой любимый отладчик JavaScript, вы можете увидеть, что новая ошибка:

 $ is not a function (jquery.actions.js, line 18) 

Это означает, что вы пытаетесь использовать селектор сокращений jQuery, но завернули свой документ, используя полный синтаксис имени объекта jQuery.

В jquery.actions.js замените каждую ссылку «$» на «jQuery».

Это заставит ваш слайдер работать. Но вы также заметите, что у вас есть другие ошибки в вашем JavaScript …

 pos is null (undo.js, line 367) threads[x] is undefined (_display, line 915) 

Вы можете или не должны заботиться об этих ошибках в зависимости от того, как они влияют на ваш сайт. Я, как правило, хотел бы устранить любые ошибки для производительности и стабильности. Некоторые браузеры будут хуже, чем другие.

Две вещи:

  1. Вызов wp_head() должен появиться сразу перед закрывающим </head> .
  2. Вместо жесткого кодирования ссылок на скрипт вы должны ставить в очередь все сценарии , включая любые необходимые зависимости.
  3. Вместо жесткого кодирования вашего собственного скрипта поместите его в файл сценария, например custom.js , и запустите его также
  4. Каскадируйте свои сценарии в очереди, если необходимо, используя аргумент $deps , чтобы убедиться, что все загружаются в правильном порядке.

например, удалить все вызовы скрипта из главы документа, а затем добавить в functions.php следующее:

 function mytheme_enqueue_scripts() { $scriptsrc = get_template_directory_uri() . '/js/'; wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'flashobject', $scriptsrc . 'flashobject.js' } wp_enqueue_script( 'equalheight', $scriptsrc . 'jquery.equalHeight.js', array( 'jquery' ) } wp_enqueue_script( 'jquerycarousel', $scriptsrc . 'jquery.carousel.js', array( 'equalheight' ) } wp_enqueue_script( 'jqueryactions', $scriptsrc . 'jquery.actions.js', array( 'carousel' ) } wp_enqueue_script( 'custom', $scriptsrc . 'custom.js', array( 'actions' ) } } add_action( 'wp_head', 'mytheme_enqueue_scripts' ); 

Это должно решить любые проблемы, возникающие при конфликтах сценариев / библиотек.

Затем вам нужно убедиться, что вы поете jQuery no-conflict wrappers правильно .