2016-04-07 86 views
1

我有劍道標籤欄,有多個選項卡的內容,他們每個人包括JavaScript函數$(document).ready()...劍道標籤欄:撥打每當選項卡中選擇

但標籤內容的JavaScript函數,它只是執行在第一次的標籤(內容已加載),當我選擇另一個選項卡並返回到此選項卡時,由於內容已被加載,因此不會調用$(document).ready()

是否有任何可能的方法使$(document).ready()在每次選擇標籤時執行? (由於性能考慮,每次重新呈現標籤內容不是一個選項...)

任何建議表示讚賞!

回答

1

你可以定義一個函數爲每個單獨的標籤頁和電線了一個客戶端事件的回暖時tabstrip的選擇使用some of the available events改變:

@Html.Kendo().TabStrip() 
      .Name("YourTabStrip") 
      .Events(events => events.Select("tabChanged")) 

<script> 
    function tabChanged(e){ 
     // Get your selected tab using (e.item); 
     var index = $("#YourTabStrip").data("kendoTabStrip").select().index(); 

     // Based on the tab, trigger a function 
     switch(index){ 
      default: 
      case 0: 
       LoadContentA(); 
      case 1: 
       LoadContentB(); 
     } 
    } 
</script> 

而且你可以重構每個$(document).ready()通話您的個性化選項卡中簡單地調用的switch語句中指定的功能之一:

<script> 
    $(document).ready(function(){ 
     LoadContentA(); 
    }); 

    function LoadContentA(){ 
     // Do work here 
    } 
</script> 

我敢肯定,如果你通過available Javascript API documentation和閱讀10,這可能有助於提供一些更好的解決方法。