我不知道为什么我得到错误,但我得到“不能调用方法替换未定义”。它发生在$('#wizard'+optionalArg)
部分,如果我删除了optionalArg部分,它可以正常工作。知道为什么会这样吗?
function loadWizard(optionalArg)
{
optionalArg = (typeof optionalArg === "undefined") ? "" : optionalArg;
$('#wizard'+optionalArg).smartWizard({contentURL:'/welcome/form_view',
transitionEffect:'slideleft', onLeaveStep:leaveAStepCallback,onFinish:onFinishCallback, contentCache:false});
}
函数调用
var id = 2;
loadWizard(id);
在我发送ID之前我运行此
$('#all_wizards').append('<form action="#" method="POST"><div id="wizard2" class="swMain template"></div></form>');
所以wizard2应该存在..
答案 0 :(得分:2)
可以是:
$('#wizard'+optionalArg) //would make wizard2
你的html中没有带有这个id的元素,所以在undefine抛出异常时调用方法。
尝试使用空检查:
function loadWizard(optionalArg)
{
var myElement=$('#wizard'+optionalArg);
if(myElement.length>0){
$('#wizard'+optionalArg).smartWizard({contentURL:'/welcome/form_view',transitionEffect:'slideleft', onLeaveStep:leaveAStepCallback,onFinish:onFinishCallback, contentCache:false});
}
}
答案 1 :(得分:0)
你确定你有一个
的元素id="wizard1" (assuming optionalArg = 1)
答案 2 :(得分:0)
通过将console.log放到('#wizard'+ optionalArg)并检查元素是否存在来进行调试?很可能该元素不存在,因此创建和错误。