原生态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 来操作字符串(一些字符串函数)
Feb 15 Javascript
javascript 动态数据下的锚点错位问题解决方法
Dec 24 Javascript
从零开始学习jQuery (二) 万能的选择器
Oct 01 Javascript
js创建元素(节点)示例
Jan 02 Javascript
60行js代码实现俄罗斯方块
Mar 31 Javascript
jquery操作select元素和option的实例代码
Feb 03 Javascript
jquery代码规范让代码越来越好看
Feb 03 Javascript
WebSocket的简单介绍及应用
May 23 Javascript
深入了解query和params的使用区别
Jun 24 Javascript
jQuery实现消息弹出框效果
Dec 10 jQuery
在JavaScript中实现链式调用的实现
Dec 24 Javascript
JavaScript实现移动端拖动元素
Nov 24 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
PDO::quote讲解
2019/01/29 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
JavaScript中的类继承
2010/11/25 Javascript
基于JQuery 滑动与动画的说明介绍
2013/04/18 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
css配合jquery美化 select
2013/11/29 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
Numpy掩码式数组详解
2018/04/17 Python
我喜欢你 抖音表白程序python版
2019/04/07 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
Python实现不规则图形填充的思路
2020/02/02 Python
python打开文件的方式有哪些
2020/06/29 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
浙江文明网签名寄语
2014/01/18 职场文书
工作违纪检讨书
2014/02/17 职场文书
商场消防安全责任书
2014/07/29 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
管理失职检讨书
2015/05/05 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang