user
  • 0
Гуру

Функция плагина JQuery не является функцией

  • 0

У меня проблема, которую я никогда раньше не видел. В совершенно новой установке WordPress я загрузил тему, над которой работал для ресторана друга: CornerPocketPub.com.

Проблема, как вы видите, заключается в том, что плагины jquery для домашней страницы (.cycle) и страницы меню (.easyAccordion) не распознаются как функции в Firebug. Теперь я искал ответы повсюду, но, похоже, не могу найти решение, которое работает для меня.

Помогите, пожалуйста, заранее спасибо за помощь и советы!

Share
  1. Как это вопрос, специфичный для WordPress?

    • 0
  2. Я все еще говорю, что это проблема jQuery ; однако важно отметить, что WordPress требует режима отсутствия конфликтов для jQuery.

    Из Кодекса: jQuery noConflict Wrappers

    Библиотека jQuery, входящая в состав WordPress, установлена ​​в noConflict() режим (см. Ресурсы wp-includes/js/jquery/jquery.js ). Это сделано для предотвращения проблем совместимости с другими библиотеками JavaScript, которые WordPress может связать.

    В noConflict() моде глобальный $ ярлык для jQuery недоступен, так что вы все равно можете использовать:

    jQuery(document).ready(function(){
        jQuery(#somefunction) ...
    });
    

    но следующее либо выдаст ошибку, либо будет использовать $ ярлык, назначенный другой библиотекой.

    $(document).ready(function(){
         $(#somefunction) ...
    });
    

    Однако, если вам действительно нравится короткий $ вместо jQuery, вы можете использовать следующую оболочку вокруг своего кода:

    jQuery(document).ready(function($) {
        // Inside of this function, $() will work as an alias for jQuery()
        // and other libraries also using $ will not be accessible under this shortcut
    });
    

    Эта оболочка заставит ваш код выполняться, когда DOM будет полностью построен. Если по какой-то причине вы хотите, чтобы ваш код выполнялся немедленно, а не ждал события готовности DOM, вы можете вместо этого использовать этот метод оболочки:

    (function($) {
        // Inside of this function, $() will work as an alias for jQuery()
        // and other libraries also using $ will not be accessible under this shortcut
    })(jQuery);
    

    Кроме того, вы всегда можете переназначить jQuery другой ярлык по вашему выбору и оставить $ ярлык для других библиотек:

    var $j = jQuery;
    
    • 0

Оставить ответ

You must login to add an answer.