2011-04-07 28 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;這樣,您選擇的選項卡會被記住。

相關問題