Я не уверен, почему я получаю ошибку, но я получаю «не могу вызвать метод замены неопределенного». Это происходит на части $('#wizard'+optionalArg)
, если я удаляю необязательную часть Arg, она работает нормально. Любая идея, почему это происходит?JQuery не может вызвать метод replace of undefined
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 должен существовать ..
Что такое $ ('# wizard' + optionalArg) возвращается? Можете ли вы сделать console.log ($ ('# wizard' + optionalArg)); в chrome или firefox и опубликуйте результат. Если он не определен, то нет элемента с этим идентификатором. –
@TomRiley хорошо, если элемент не найден для селектора, тогда он возвращает пустой набор ('length == 0'), но не' undefined'. В противном случае вы не могли бы выполнить 'console.log ($ ('# wizard' + optionalArg) .length);' –
@ t.niese Это так? Достаточно справедливо, хотя [] выплюнул бы подобные будильники. –