jQuery动态生成表格及右键菜单功能示例


Posted in Javascript onJanuary 13, 2017

本文实例讲述了jQuery动态生成表格及右键菜单功能。分享给大家供大家参考,具体如下:

这里用的是 jquery 1.4.1 的库文件,具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>无标题页</title>
  <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
  <script type="text/javascript">
    var id = 0;
    function addInfo() {
      var cpu = document.getElementById("txtCpu");
      var zhuban = document.getElementById("txtZhuban");
      var neicun = document.getElementById("txtNeicun");
      var yingpan = document.getElementById("txtYingpan");
      var tb = document.getElementById("tbAdd");
      //alert("数据插入成功!");
      var tr = tb.insertRow();
      var td0 = tr.insertCell();
      td0.innerHTML = id;
      var td1 = tr.insertCell();
      td1.innerHTML = cpu.value;
      var td2 = tr.insertCell();
      td2.innerHTML = zhuban.value;
      var td3 = tr.insertCell();
      td3.innerHTML = neicun.value;
      var td4 = tr.insertCell();
      td4.innerHTML = yingpan.value;
      id++;
      $("#tbAdd").append(tr);
    }
    $(function () {
      var clickedTrIndex = -1;
      $("#addForm>input[type=button]")
        .live("click", function () {
          $("#tbAdd tr:has(td):even").css("background", "#ebebeb");
        });
      //绑定鼠标移入移出事件到表格的行
      $("#tbAdd tr:has(td)")
        .live("mouseover", function () {
          $(this).css("cursor", "pointer").css("background", "#bcc7d8");
        })
        .live("mouseleave", function () {
          var trIndex = $(this).index();
          if (trIndex % 2 == 0) {
            $(this).css("background", "#ebebeb");
          }
          else {
            $(this).css("background", "");
          }
        })
        .live("mousedown", function (event) {
          if (event.button == 2) {
            x = event.clientX;
            y = event.clientY;
            $("#contextMenu").css("display", "block").css("left", x).css("top", y);
            clickedTrIndex = $(this).index();
          }
        });
      $("#contextMenu")
        .mouseover(function () {
          $(this).css("cursor", "pointer");
        });
      $("body")
        .live("mouseup", function (event) {
          if (event.button == 0) {
            $("#contextMenu").css("display", "none");
          }
        });
      $("#contextMenu li")
        .mouseover(function () {
          $(this).css("background", "#C1D7EE");
        })
        .mouseout(function () {
          $(this).css("background", "");
        })
        .click(function () {
          var deleteStr = $(this).children("a").attr("title");
          if (deleteStr == "delete") {
            $("#tbAdd tr:has(td):eq(" + clickedTrIndex + ")").remove();
          }
          else {
            alert("按下了:" + deleteStr);
          }
        });
    });
  </script>
  <style type="text/css">
    #tbAdd{ 
    }
    #tbAdd tr td{ height:30px;
           text-align:center;
    }
    #tbAdd thead tr th{ width:90px;
              height:30px;
              text-align:center;
    }
    #addForm input[type=text]{ margin-bottom:8px;
                  width:150px;
    }
    #contextMenu{ width:150px;
           padding:5px 0px 5px 5px;
           line-height:24px;
           background-color:#F0F0F0;
           position:absolute;
           display:none;
    }
    #contextMenu ul{ margin:0px;
    }
    #contextMenu li{ margin:0px;
             margin-left:-15px;
             float:left;
             width:100%;
             list-style-type:none;
    }
    #contextMenu li a{ text-decoration:none;
              padding:5px 0px 5px 12px;
              display:block;
              color:#282828;
    }
  </style>
</head>
<body onContextmenu="return false;">
<div>
  <table id="tbAdd" cellpadding="0" cellspacing="0" border="1" style="border-collapse:collapse;">
    <thead>
      <tr>
        <th>编号</th><th>CPU</th><th>主板</th><th>内存</th><th>硬盘</th>
      </tr>
    </thead>
  </table>
  <br />
  <div id="addForm">
    <span>CPU:</span><input type="text" id="txtCpu" /><br />
    <span>主板:</span><input type="text" id="txtZhuban" /><br />
    <span>内存:</span><input type="text" id="txtNeicun" /><br />
    <span>硬盘:</span><input type="text" id="txtYingpan" /><br />
    <input type="button" value="添加信息" onclick="addInfo()" /><br />
  </div>
  <div id="contextMenu">
    <ul>
      <li><a href="#" title="add">添加信息</a></li>
      <li><a href="#" title="delete">删除信息</a></li>
      <li><a href="#" title="modify">修改信息</a></li>
      <li><a href="#" title="save">保存信息</a></li>
    </ul>
  </div>
</div>
</body>
</html>

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
addRule在firefox下的兼容写法
Nov 30 Javascript
javascript 无提示关闭窗口脚本
Aug 17 Javascript
JQuery在光标位置插入内容的实现代码
Jun 18 Javascript
Jquery实现页面加载时弹出对话框代码
Apr 19 Javascript
最好用的省市二级联动 原生js实现你值得拥有
Sep 22 Javascript
js+div实现图片滚动效果代码
Feb 10 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
May 28 Javascript
Vue 过滤器filters及基本用法
Dec 26 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
Vue数据驱动模拟实现5
Jan 13 #Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
Jan 13 #Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
Jan 13 #Javascript
jquery,js简单实现类似Angular.js双向绑定
Jan 13 #Javascript
jQuery实现的简单排序功能示例【冒泡排序】
Jan 13 #Javascript
js实现淡入淡出轮播切换功能
Jan 13 #Javascript
js仿百度音乐全选操作
Jan 13 #Javascript
You might like
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Python发送email的3种方法
2015/04/28 Python
python开发之文件操作用法实例
2015/11/13 Python
理解Python垃圾回收机制
2016/02/12 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
python根据多个文件名批量查找文件
2019/08/13 Python
Python list与NumPy array 区分详解
2019/11/06 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
python中实现词云图的示例
2020/12/19 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
演讲主持词
2014/03/18 职场文书
小学毕业演讲稿
2014/04/25 职场文书
节能标语大全
2014/06/21 职场文书
服务员态度差检讨书
2014/10/28 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
电台广播稿范文
2015/08/19 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
Python anaconda安装库命令详解
2021/10/16 Python
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android