2017-04-18 35 views
0

我有一個chartist.js條形圖。我想定製x軸標籤。我寫了一些後面的jquery翻轉名和姓,然後在末尾添加'...',如果文本的長度超過11個字符。jquery動態更改後重置

$(function() { 
     $('#AssignedLineChart .ct-labels, #ResolvedBarChart .ct-labels').find('.ct-label.ct-horizontal').each(function() { 
      var label = $(this).text(); 
      var splitLabel = label.split(","); 
      var newLabel = splitLabel[1] + ", "+splitLabel[0]; 
      if (newLabel.length > 13) { 
       newLabel = newLabel.substring(0, 10) + "..."; 
      } 
      $(this).text(newLabel); 
     }); 
    }); 

當我第一次加載頁面時,它應用得很好。條形圖上有一些選擇選項可用於顯示各個範圍。當我選擇它們時,標籤會回到之前的狀態。選擇選項正在改變DOM。當我打開檢查元素選項卡時也會發生這種情況。

有沒有辦法在動態更改的元素上使用find或每個方法?

回答

0
$(function() { 

這僅適用於頁面完成加載並且僅被觸發1次的情況。

選擇選項正在改變DOM。

所以當前進程是這樣​​的:

  1. 網頁加載完成。
  2. 標籤被文件準備好的事件改變了。 (*)
  3. 標籤已被其他事件更改,這種情況下,選擇選項。 (**)

因此,它動態地改變了DOM,沒有像上面那樣(*)再次改變標籤。

因此,要在選擇選項後更改標籤,您需要在回調函數中更改上述(**)中選擇選項之後完成的操作。