原生态js,鼠标按下后,经过了那些单元格的简单实例


Posted in Javascript onAugust 11, 2016

本来是要判断那些单元格被选中,结果发现行不通,只能判断鼠标按下后,经过了那些单元格

之所以发出来,是觉得案例还有很多有意思的地方

onmouseover  的持续触发,导致了很多重复元素

由于将事件绑定在整个table上,还出现了undefined

鼠标的反复进入进出,会导致相同元素的断断续续的重复,

如何解决他们!

<table border="1" id="dnf"> 
  <tr> 
     
     
    <td rowspan="2">2</td> 
    <td>2</td> 
    <td>4</td> 
  </tr> 
  <tr> 
     
     
    <td>2</td> 
    <td>4</td> 
  </tr> 
</table>
window.onload = function() 
{ 
  var flag = false;<BR>
 //当鼠标被按下时,为true,放开是为true 
  var indexs =[];<BR>


//用来存放鼠标经过的单元格在整个表格的位置,鼠标按下时被初始化, 
  dnf.onmousedown = function() 
  { 
    flag = true; 
    indexs = []; 
  } 
  dnf.onmousemove = function(e) 
  { 
    if(flag)//只有鼠标被按下时,才会执行复合代码 
    { 
      indexs.push(search(e.target,dnf.getElementsByTagName("td")))   
    } 
  } 
  dnf.onmouseup = function() 
  { 
    flag = false; 
    deleteUndefined();//由于会经过边框,所以会出现null元素 
    deleteRepaint();//由于onmouseover不会只触发一次,且我们选择是可能反复经过一个单元格 
    alert(indexs); 
  } 
  function deleteRepaint() 
  { 
    for(var j=0;j<indexs.length;j++)//保证第j个元素是唯一的 
    { 
      var head = indexs[j]; 
      for(var i=j+1;i<indexs.length;i++)//删除与第j个重复的 
      { 
        if(head == indexs[i]) 
        { 
          indexs.splice(i,1); 
          i--; 
        } 
      } 
    } 
  } 
  function deleteUndefined() 
  { 
     
    for(var i=0;i<indexs.length;i++) 
    { 
      if(typeof indexs[i] == "undefined") 
      { 
        indexs.splice(i,1); 
        i--; 
      } 
    } 
     
  } 
  function search(a,A) 
  { 
    var length = A.length; 
     
    for(var i=0;i<length;i++) 
    { 
       
      if(a == A[i]) 
      { 
       
        return i; 
      } 
       
    } 
  } 
} 
</script>

以上这篇原生态js,鼠标按下后,经过了那些单元格的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一行代码实现纯数据json对象的深度克隆实现思路
Jan 09 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
Dec 05 Javascript
js中settimeout方法加参数的使用实例
Feb 27 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
Dec 14 Javascript
微信小程序  Mustache语法详细介绍
Oct 27 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 Javascript
js实现带进度条提示的多视频上传功能
Dec 13 Javascript
jQuery简单判断值是否存在于数组中的方法示例
Apr 17 jQuery
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
Dec 05 jQuery
微信小程序获取当前位置和城市名
Nov 13 Javascript
Vue路由切换页面不更新问题解决方案
Jul 10 Javascript
uni-app使用countdown插件实现倒计时
Nov 01 Javascript
vue分页组件table-pagebar使用实例解析
Nov 15 #Javascript
使用BootStrap实现用户登录界面UI
Aug 10 #Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
Aug 10 #Javascript
BootStrap Typeahead自动补全插件实例代码
Aug 10 #Javascript
BootStrap中Datepicker控件带中文的js文件
Aug 10 #Javascript
JS获取鼠标选中的文字
Aug 10 #Javascript
浅析JavaScript函数的调用模式
Aug 10 #Javascript
You might like
搜索引擎技术核心揭密
2006/10/09 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
2016/01/20 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
pandas 层次化索引的实现方法
2019/07/06 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
应聘教师推荐信
2013/10/31 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
女方离婚起诉书
2015/05/18 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL