jQuery UI效果错误

时间:2015-01-23 16:01:43

标签: jquery wordpress jquery-ui

我有正确排队的jQuery,jQuery UI和jQuery UI Effects,并且顺序正确;但是当我尝试将效果应用于jQuery中的show / hide时,我一直收到错误。我从一个短代码传递一个变量wp_localize_script()以便在jQuery中使用,这也正常工作。如果我用警报测试对象,它会显示正确的值。

这是我收到的错误: 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);
            }
        });

我在这里遗漏了什么吗?如果我从show / hide片段中删除jQuery UI效果,一切都按预期工作。我尝试使用效果时只会出现此错误。在一方面,变量aw_ss_button_ID也正确设置,它只是在主函数中的一段代码中。上面的jQuery代码段也包含在.ready()

1 个答案:

答案 0 :(得分: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);
 }