原生态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 smipleChart 简单图标类
Jan 12 Javascript
js中return false(阻止)的用法
Aug 14 Javascript
window.open()详解及浏览器兼容性问题示例探讨
May 29 Javascript
jQuery实现首页顶部可伸缩广告特效代码
Apr 15 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
Apr 20 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 Javascript
原生js仿jquery实现对Ajax的封装
Oct 04 Javascript
利用Jasmine对Angular进行单元测试的方法详解
Jun 12 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
在React 组件中使用Echarts的示例代码
Nov 08 Javascript
ES6 Promise对象的应用实例分析
Jun 27 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 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 正则表达式的学习探讨
2013/06/06 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
2020/03/03 Javascript
Python pass 语句使用示例
2014/03/11 Python
浅谈MySQL中的触发器
2015/05/05 Python
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
python机器学习实现决策树
2019/11/11 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
骨干教师申报材料
2014/12/17 职场文书
大学辅导员述职报告
2015/01/10 职场文书
文明倡议书
2015/01/19 职场文书
建国大业观后感
2015/06/01 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
Go 内联优化让程序员爱不释手
2022/06/21 Golang
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS