原生态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压缩工具:X2JSCompactor
Jun 13 Javascript
使用jQuery操作Cookies的实现代码
Oct 09 Javascript
javascript学习笔记(十四) window对象使用介绍
Jun 20 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
Apr 16 Javascript
JS实现为排序好的字符串找出重复行的方法
Mar 02 Javascript
JS实现回到页面顶部动画效果的简单实例
May 24 Javascript
js实现截图保存图片功能的代码示例
Feb 16 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
Mar 12 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 Javascript
Vuex实现数据共享的方法
Dec 20 Javascript
原生JS实现相邻月份日历
Oct 13 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
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 AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
php和html的区别点详细总结
2019/09/24 PHP
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
Python中的asyncio代码详解
2019/06/10 Python
linux环境下Django的安装配置详解
2019/07/22 Python
Django框架 querySet功能解析
2019/09/04 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
为什么会有内存对齐
2016/10/10 面试题
师范毕业生自荐信
2013/10/17 职场文书
会计实习生自我鉴定
2013/12/12 职场文书
历史专业大学生职业生涯规划书
2014/03/13 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
车辆年审委托书范本
2014/09/18 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android