原生态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 相关文章推荐
javascript 事件绑定问题
Jan 01 Javascript
基于jquery的3d效果实现代码
Mar 23 Javascript
JqGrid web打印实现代码
May 31 Javascript
javascript实现超炫的向上滑行菜单实例
Aug 03 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
May 26 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
Jan 17 Javascript
jQuery图片轮播功能实例代码
Jan 29 Javascript
jQuery点击头像上传并预览图片
Feb 23 Javascript
JavaScript实现简单生成随机颜色的方法
Sep 21 Javascript
详解Vue源码之数据的代理访问
Dec 11 Javascript
基于js Canvas实现二次贝塞尔曲线
Dec 25 Javascript
写给新手同学的vuex快速上手指北小结
Apr 14 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
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Pytorch 实现自定义参数层的例子
2019/08/17 Python
python global关键字的用法详解
2019/09/05 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
提高EJB性能都有哪些技巧
2012/03/25 面试题
委托证明的格式
2014/01/10 职场文书
大学运动会入场词
2014/02/22 职场文书
公益广告宣传方案
2014/02/28 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
白酒代理协议书范本
2014/10/26 职场文书
毕业生见习报告总结
2014/11/08 职场文书
信息技术研修心得体会
2016/01/08 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis
yolov5返回坐标的方法实例
2022/03/17 Python