AJAX学习笔记05

来源:互联网 发布:网络的丈夫 编辑:程序博客网 时间:2024/06/03 19:33
 

AJAX学习笔记05

学习课程:

学习内容

相关文件

 

 

实现可编辑的表格

jquery-editTable.jsp

jquery.js

jquery-editTable.js

jquery-editTable.css

实现效果:

点击单元格,单元格会变成一个文本输入框,文本框中初始的内容为单元格中的内容,并且这些内容处于被选择状态下

可以在单元格中输入文本内容,

单击回车,文本中的内容会转换到单元格中的内容

想要修改成原来的内容可以按下ESC键

三个文件的代码:

Jquery-editTable.jsp

 

  1. <link rel="stylesheet" type="text/css" 
  2.                                         href="css/jquery-editTable.css">
  3. <script type="text/javascript" src="jslib/jquery.js" />
  4. <script type="text/javascript" src="jslib/jquery-editTable.js" />
  5. <table>
  6.      <tbody>
  7.      <tr>
  8.      <td>第一个单元格</td>
  9.      <td>第二个单元格</td>
  10.      </tr>
  11.      </tbody>
  12. </table>

 

jquery-editTable.css

 

  1. @CHARSET "UTF-8";
  2.  table , td{
  3.   /*为表格加入边框,让相邻边框合并*/
  4. border-collapsecollapse;
  5. border1px solid black;  /*abcdef abcd0b abcd0a*/
  6. color: ab0d0a;
  7. }

 

jquery-editTable.js

 

  1. //在页面加载时,让所有的td都拥有一个点击事件
  2. $(document).ready( function(){
  3. //找到所有的td标签
  4. var tds = $("td"); 
  5. //为td标签添加单击事件
  6. tds.click( tdClick );
  7. } );
  8. function tdClick(){
  9. //0.保存当前的td节点
  10. var td = $( this );
  11. //1.取出当前td中的内容文本保存起来
  12. var text = td.text();
  13. //2.清空td里面的内容
  14. td.empty();
  15. //3.建立一个文本框,即一个input的元素节点
  16. //为什么创建<input>标签就创建出文本框,
  17. //经过测试,input的type属性默认类型为text 
  18. var input = $("<input type='text'>");
  19. //4.设置文本框的值是保存起来的文本内容
  20. //input.attr( "type" , "button");
  21. input.attr( "value" , text );
  22. //4.5让文本框响应键盘事件
  23. input.keyup( function( event ){
  24. //0.获取用户按下的键值
  25. var keyEvent = event || window.event;
  26. var keyCode = keyEvent.keyCode;
  27. //1.判断是否按下回车
  28. if ( keyCode == 13 ){
  29. //2.获取当前文本框的内容
  30. var inputNode = $( this );
  31. //3.清空td里面的内容
  32. td.empty();
  33. //4.将保存的文本框中的内容填充到td中
  34. td.html( inputNode.val() ); 
  35. //5.让td重新拥有点击事件
  36. td.click( tdClick );
  37. }
  38. //扩展作业:按下ESC可以恢复操作
  39. //ESC键的keyCode为27
  40. if ( keyCode == 27 ){
  41. var inputNode = $( this );
  42. input.val( text );
  43. }
  44. });
  45. //5.将文本框中的内容加入到td中
  46. td.append( input ); //input.appendTo( td );
  47. //当td中的内容变成一个input的元素节点以后,不再响应onclick事件
  48. //当td中的内容从input的元素节点变成文字信息时,再将onclick事件注册上去
  49. //5.5将文本框中的文字被选中
  50. //将JQuery对象转换为普通的DOM对象,才能调用select()方法
  51. var inputDom = input.get( 0 );
  52. inputDom.select();
  53. //6.取消td上的点击事件 API,事件——unbind();
  54. td.unbind();
  55. }

 

原创粉丝点击