目前分類:jquery (2)

瀏覽方式: 標題列表 簡短摘要
之前寫了一個自動增列元件,點到最後一列時會自動產生新的一列,套用了 jQuery 之後,發現既有的欄位都有生效,但新增一列出來的欄位就沒生效,我嘗試在新增一列後,重新執行一次 jQuery 的 API (bind 方法),但仍然無效。

經追蹤 jQuery 的 source 後,我發現只要有被 jQuery "碰過"的 element ,都會加上 jQuery1200220xxx ="xx" 的屬性,應該是 jQuery 為了加快第二次 access 該 element  的速度所留下的"痕跡",而我的自動增列因為是複製最後一列的所有 html 產生新的 element,當然這個 jQuery 留下的 "痕跡" 也會被一併複製,所以新產生出來的 element 仍然擁有舊的 jQuery ID,雖然有重新執行 JQuery 的 API (其實是要 bind 一些方法),但 JQuery 發現在 cache 中已存在該 ID 了時就會自動 skip 掉,所以新列就完全沒 bind 到任何方法。
解決方法:
過濾新列的 html ,將 JQuery 的 ID 殺掉,如下:

itFarmer 發表在 痞客邦 留言(0) 人氣()

jquery 提供一個很 fancy selector幫助我們很容易的找到要控制的 dom 元件。例如:當我相找出 nextSign… 開頭的欄位時,過去作法需要把 form1 下所有elements找出再走訪每個element,判斷名稱才能找出。

<form name=”form1”>

<input type=”text” name=”nextSignEmpNo” value=””>

<input type=”text” name=”nextSignDeptNo” value=””>

<input type=”text” name=”docNo” value=””>

itFarmer 發表在 痞客邦 留言(1) 人氣()