javascript
  • jquery
  • 2011-01-23 33 views 0 likes 
    0

    我的問題基本上是the same as this one(它從來沒有得到正確的回答)。應用jQuery函數動態添加項目

    如何在我動態添加的項目上使用jQuery函數?

    具體來說,我想在表格上使用jquery tablesorter plugin,我在用戶做了一些事情之後,在頁面上動態加載頁面。

    這裏是我的代碼:

    results_html += "<table id='results' class='tablesorter><thead>"; 
    [My table contents go here, ommitted for this question] 
    results_html += "</tbody></table>"; 
    $('#book_results').html(results_html); 
    $("#results").tablesorter(); 
    

    有頁面上沒有JS錯誤,但不被應用的tablesorter功能。我能做什麼?

    謝謝!這些代碼

    回答

    0

    來看,我只能想到兩個原因不工作:

    1. 如果results是不是在頁面上唯一的ID。
    2. 如果開行錯字實際上是在你的代碼(你缺少收盤'了「的tablesorter」下課:

      results_html += "<table id='results' class='tablesorter><thead>"; 
                      // ^-- here 
      

    從根本上說,它的工作原理:http://jsbin.com/ikebu4/2那並不是」看起來很像,因爲我沒有包含任何表格分類器CSS,但是如果你點擊了列標題,它是有用的。基本上有一個預先存在的表,然後是一個動態添加一個表的按鈕。 。

    +0

    我的代碼實際上與示例有些不同(更長)。但是我沒有在Firebug中看到任何錯誤,即使開啓了嚴格的JavaScript警告。嗯... – AP257 2011-01-23 17:19:24

    +0

    @ AP257:錯字是否存在於真實的代碼中?如果是這樣,Firefox可能不會生成您期望的DOM結構(並且TableSorter需要)。 – 2011-01-23 17:21:27

    2

    Tablesorter有三gger函數,您可以調用它來添加tablesorter到動態添加的元素。請參閱Ajax example。像這樣的東西應該爲你工作:

    $("#results").tablesorter(); 
    $("#results").trigger("update"); 
    

    有時你需要調用$("#results").trigger("appendCache");。我還沒有找到爲什麼。

    相關問題