1

エラーが発生する理由はわかりませんが、「未定義のメソッド置換を呼び出すことができません」というメッセージが表示されます。オプションの $('#wizard'+optionalArg)Arg部分を削除すると、問題なく動作します。なぜこれが起こっているのですか?

 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 が存在する必要があります。

4

3 に答える 3

2

かもね:

$('#wizard'+optionalArg) //would make wizard2

HTML にはこの ID を持つ要素がないため、undefine でメソッドを呼び出すと例外がスローされます。

nullチェックを試してください:

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});
    }
}
于 2013-07-01T08:15:58.423 に答える
0

の要素がありますか?

id="wizard1" (assuming optionalArg = 1)
于 2013-07-01T08:17:02.827 に答える
0

console.log を ('#wizard'+ optionalArg) に入れてデバッグし、要素が存在するかどうかを確認しますか? ほとんどの場合、要素が存在しないため、作成およびエラーが発生します。

于 2013-07-01T10:48:41.990 に答える