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