原生态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 相关文章推荐
javawscript 三级菜单的实现原理
Jul 01 Javascript
JavaScript 闭包在封装函数时的简单分析
Nov 28 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
Dec 28 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 Javascript
jquery 页面滚动到底部自动加载插件集合
Jan 31 Javascript
浅析JavaScript基本类型与引用类型
May 28 Javascript
Javascript中的方法链(Method Chaining)介绍
Mar 15 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
Feb 19 Javascript
vue2.0 datepicker使用方法
Feb 04 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
Aug 18 Javascript
深入解析微信小程序开发中遇到的几个小问题
Jul 11 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 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
PHP学习之PHP变量
2006/10/09 PHP
php基础知识:类与对象(5) static
2006/12/13 PHP
php和nginx交互实例讲解
2019/09/24 PHP
Extjs 几个方法的讨论
2010/01/28 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
2018/05/15 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
python算法学习之计数排序实例
2013/12/18 Python
Python制作数据导入导出工具
2015/07/31 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
python中eval与int的区别浅析
2019/08/11 Python
Python接口测试文件上传实例解析
2020/05/22 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
Linux如何为某个操作添加别名
2013/03/01 面试题
法学院方阵解说词
2014/01/29 职场文书
文秘人员工作职责
2014/01/31 职场文书
《灯光》教学反思
2014/02/08 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
师德师风演讲稿
2014/05/05 职场文书
高中课程设置方案
2014/05/28 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
2015年底工作总结范文
2015/05/15 职场文书
迎新年主持词
2015/07/06 职场文书
遗嘱范文
2015/08/07 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server
MySQL分区路径子分区再分区
2022/04/13 MySQL