2012-06-12 31 views
2

我正在使用 当用户单击名为“create”的按钮时,我的向导在对话框中打开。当用户再次点击该按钮时,我想要向导重置并启动一个新的向导,但它保持其状态。如果我重新初始化它,那么它会再次添加下一个,上一个和结束按钮并混淆整个向导UI。任何想法如何我可以重置智能向导?重置jquery smartwizard

+1

如果我的答案解决了您的问题(或任何其他问题),请通过单击复选标记标记答案。这就是Stack Overflow的工作原理,以便未来的访问者得到帮助。 – lucuma

回答

3

根据该对话框中你使用上,我认为你需要做的是以下几点:

  1. 为隐藏你的向导元素创建一个模板
  2. 当您打开对话框(的OnOpen ),克隆元素并应用智能向导
  3. 当对话框关闭时,删除已克隆的元素。

这里是一个演示使用颜色框:

http://jsfiddle.net/lucuma/Kn2ud/4/

编辑:既然小提琴不再工作,由于图书馆的创建时从运动中,代码如下:

$("button").colorbox({ 
      inline: true, 
      open: true, 
      width: "1000px", 
      href: '.inline', 
      onClosed: function() { 
       $('.inline .swMain').remove(); 
      }, 
      onOpen: function() { 
       $('.template').clone().removeClass('template').appendTo('.inline').smartWizard({ 
        transitionEffect: 'slideleft', 
        onFinish: onFinishCallback 
       }); 
      } 
     }); 
+0

我也做同样的事情,但我不希望smartwizard保留信息,我希望它重新初始化它的状态,即它应该总是显示第一页,每当按钮被点击(我可以强制通过使用转到,但在那里也许其他状态变量,如完成的网页等)我怎么能smartwizard忘记/重置其状态? –

+0

@vivekjain我已经更新了答案。由于smartwizard插件没有销毁事件/函数,因此我们可以在隐藏对话框时将其删除。 – lucuma

+0

虽然在我的对话框中出现的标记是相当大的,但这会起作用,唯一的事情是,元素的ID会发生什么?他们会被复制吗?在很多地方我使用$(“#id”)来访问一个元素,这段代码是否会破坏? –

1

这似乎适用于我(在coffeescript中,但你明白了)。

numSteps = 5 
wizardDiv.smartWizard('goToStep', 1) 
# disable all the following steps 
for i in [2..numSteps] 
    wizardDiv.smartWizard('disableStep', i) 

在向导中清除或保留任何数据本身由您决定。

2

向导重置公共方法包含在最新的智能向导4中,see the example

$('#smartwizard').smartWizard("reset"); 

调用此函数会将向导重置为初始默认状态。