Re: [問題] click event只執行一次?
※ 引述《Bladework (Nothing)》之銘言:
: ※ 引述《Bladework (Nothing)》之銘言:
: : Hi 各位板友,
: : 我試著要sort table, 可是click event只會執行一次除非我重新讀取網頁.
: : 程式碼的連結在此: http://tinyurl.com/5tgsasa
: : 請問有人能給我一些建議或幫助嗎?
: : 謝謝各位的時間.
: 不好意思, 已附上HTML的連結.
: http://tinyurl.com/4xsqljs
: td與內容的擷取是在下面id=outputRow和forEach的迴圈內.
可正常運作的demo: http://jsfiddle.net/d5XRX/
1.
> sortFunction
- table.appendChild(trArray[j]);
+ tBody.appendChild(trArray[j]);
原本寫table是附加在2的位置,但應該是要在1的位置。
(sortFunction裡tBody是去讀tBodies[0])
1
</tbody>
2
</table>
2.
> compareValue
- var value1 = a.cells[colIndex].innerTEXT;
- var value2 = b.cells[colIndex].innerTEXT;
+ var value1 = a.cells[colIndex].innerHTML;
+ var value2 = b.cells[colIndex].innerHTML;
不要IE only
3.
如果tbody>td都是字串 那本來的sort不用改
如果可能要比較數字 那可能會sort錯誤 例如會發生22 < 5的錯誤
這時就要將字串轉成數字
新增
function isInt(x) {
var y=parseInt(x);
if (isNaN(y)) return false;
return x==y && x.toString()==y.toString();
}
> compareValue
var value1 = a.cells[colIndex].innerHTML;
var value2 = b.cells[colIndex].innerHTML;
+ if(isInt(value1) && isInt(value2)){
+ value1 = parseInt(value1);
+ value2 = parseInt(value2);
+ }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.30.198
※ 編輯: tomin 來自: 140.122.30.198 (06/14 15:52)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章