2015-01-23 6 views
0

У меня есть jQuery, jQuery UI и jQuery UI Эффекты помечены правильно и в правильном порядке; однако я продолжаю получать сообщение об ошибке при попытке применить эффект к show/hide в jQuery. Я передаю переменную через wp_localize_script() из короткого кода для использования в jQuery, это также работает правильно. Если я тестирую объект с предупреждением, он показывает правильное значение.Ошибка jQuery UI Эффекты

Это ошибка я получаю: enter image description here

Это JQuery фрагмент кода я использую:

jQuery('.aw_ss_post_wrapper').each(function() { 
      if (!jQuery(this).hasClass(aw_ss_button_ID)) { 

       var myUIeffect = aw_ss_script_vars.jQueryUIeffect; 
       var options = {}; 

       if (myUIeffect === "scale") { 
        options = { percent: 0 }; 
       } else if (myUIeffect === "size") { 
        options = { to: { width: 200, height: 60 } }; 
       } 

       jQuery(this).hide(myUIeffect, options, 800);   

      } else { 
       jQuery(this).show(myUIeffect, options, 800); 
      } 
     }); 

Я пропускаю что-то здесь? Если я удалю влияние jQuery UI из фрагмента show/hide, все будет работать по назначению. Я получаю эту ошибку только при попытке использовать эффект. На стороне нет, переменная aw_ss_button_ID также настроена правильно, ее просто в фрагменте кода далее в основной функции. Вышеупомянутый фрагмент jQuery также завернут в .ready().

+0

ли быть включен jQueryUI * до * JQuery случайно? – MackieeE

+0

Нет, заказ правильный. jQuery, jQuery UI, jQuery Effcts, затем мой сценарий готового документа. – AndyWarren

ответ

0

Это происходит, когда jQueryUI не распознает эффект. Вот скрипка, иллюстрирующая проблема: http://jsfiddle.net/Lpx8rnaL/

Можно возразить, что ошибка не является ни специфичной, ни на самом деле полезно ...

Вы можете обойти эту проблему, обернув переменный в то, что проверяет, если такой эффект действует и недобросовестный к некоторому другому желаемому значению (или undefined, для никакого эффекта):

if(jQuery.effects.effect[myUIeffect]) { 
    jQuery(this).hide(myUIeffect, options, 800); 
} 
else { 
    jQuery(this).hide("scale", options, 800); 
} 
+0

К сожалению, реализация этой ошибки вызывает такую ​​же ошибку. – AndyWarren

+0

Его нет здесь: http://jsfiddle.net/Lpx8rnaL/1/ Возможно, это выходит из '.show'? Я не знаю, где вы установили свой внешний 'myUIEffect', но это не то же самое, что в вашем' .hide'. В противном случае, вы могли бы сделать MCVE? – blgt

+0

Я потерялся с этим. Я изменил '.show', чтобы не рассматривать эффект вообще, и просто использую простой старый' .show', и ошибка по-прежнему сохраняется. Не задумываясь, посмотри, что-то подскакивает тебе? http://build.andywarren1.com/simple-sorter/ – AndyWarren

Смежные вопросы