2014-10-06 59 views
0

我正在加載報告並以jquery-ui以標籤格式顯示。該報告由json中的ajax調用返回,並且函數將其格式化爲HTML。示例代碼如下:JQuery-ui標籤頁 - 全新內容無法正常工作

<div id="reportdiv"> 
</div> 

<script> 
function displayreport(objectid) 
{ 
    $("#reportdiv").hide(); 
    $("#reportdiv").html(""); 
    $.ajax({ 
     type: "GET", 
     headers: { 'authtoken': getToken() }, 
     url:'/reportservice/v1/report/'+objectid.id, 
     success: function(data){ 
      if(data == null) 
      { 
       alert("That report does not exist."); 
      } 
      else 
      { 
       var retHTML = dataToTabHTML(data.config); 
       $("#reportdiv").html(retHTML).fadeIn(500); 
       $(function() { 
        tabs = $("#reportdiv").tabs(); 
        tabs.find(".ui-tabs-nav").sortable({ 
         axis: "x", 
         stop: function() { 
         tabs.tabs("refresh"); 
         } 
        }); 
       }); 
      } 
     } 
    }); 
} 
</script> 

這可以在第一次調用displayreport時正常工作。但是,如果用戶輸入另一個值並再次運行displayreport,則「標籤」格式將完全丟失(標籤顯示爲我的部分上方的鏈接,單擊鏈接會將您帶到頁面的下一部分)。

我想完全重新設置reportdiv html函數的開頭會使我回到原來的狀態,並允許它每次正常工作。有什麼建議麼?

+0

看看這個的jsfiddle證明。第一次點擊重新加載按鈕,它可以工作。第二次點擊它,它有我描述的問題。想法? [鏈接] http://jsfiddle.net/scmxyras/ – Doug 2014-10-06 21:26:53

回答

0

經過更多的測試,發現摧毀是要走的路。如果我已經設置了標籤已經運行了破壞,否則,跳過破壞(http://jsfiddle.net/scmxyras/1/):

if(tabs!=undefined)$("#reportdiv").tabs("destroy");