2011-04-07 46 views
1

我有一些数据包装在3个div中,每个div代表一个'tab'和一个用于创建选项卡效果的jQuery脚本。这3个标签包括操作时间,联系信息,位置信息。ASP.NET MVC - 如何在getJSON调用后重新运行jQuery选项卡脚本?

漂亮的标准,没什么特别的。加载页面时,运行以下脚本,创建“选项卡”效果。


    $(document).ready(function() { 
     tabs({ 
      block: "#branch" 
     }); 
    }); 

我有一个下拉列表触发调用返回一个JsonResult动作,和下面的代码来处理的变化:


    $("#branches").change(function() { 
     $("#branches option:selected").each(function() { 
      $.getJSON("/Branch/JsonBranch/" + $(this)[0].value, null, function (data) { 
       $("#branchinfo").html(data); 
      }); 
     }); 
    }); 

行动是在后ASP.NET MVC - Combine Json result with ViewResult的变化

操作码不相关。问题是,由于我没有重新加载整个页面,所以'tab'脚本永远不会再运行。所以,一旦html代码被替换,所有的数据显示,标签不会被创建。

有没有办法在重新加载页面的一部分后再次运行该选项卡脚本?我尝试在.change()函数调用中添加对tabs()的调用,但那不起作用。

任何帮助,将不胜感激!谢谢!

+0

看起来你不像使用jQuery UI标签插件(至少直接)。有什么理由呢? – tvanfosson 2011-04-07 21:52:07

+0

没有真正的原因,我只是喜欢在下面的页面上执行:http://www.ilovecolors.com.ar/multiple-jquery-tabs/ – adimauro 2011-04-08 13:11:33

回答

2

您应该可以将其添加到getJSON回调中。

$("#branches").change(function() { 
    $("#branches option:selected").each(function() { 
     $.getJSON("/Branch/JsonBranch/" + $(this)[0].value, null, function (data) { 
      $("#branchinfo").html(data); 
      tabs({ block: "#branch" }); 
      }); 
    }); 
}); 
+0

就是这样,谢谢!完美的作品。 – adimauro 2011-04-08 13:03:29

0

通常,我将“标签”类分配给我的标签目标。

然后我用$('。tabs')触发它们。tabs();

这样,即使在动态添加更多内容后,我也可以尽可能多地调用它。

顺便说一下;我可以为标签推荐Cookie plugin;这样,您选择的选项卡会被记住。

相关问题