我不确定我为什么会得到错误,但我得到的是"无法调用未定义的方法替换"。它发生在$('#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>');
所以魔法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});
}
}
你确定你有一个带有的元素吗
id="wizard1" (assuming optionalArg = 1)
通过将console.log放入('#wizard'+optionalArg)进行调试,并检查元素是否存在?最有可能的是,该元素不存在,从而产生错误。