原生态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 flash复制库类 Zero Clipboard
Jan 17 Javascript
brook javascript框架介绍
Oct 10 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
JavaScript声明变量时为什么要加var关键字
Sep 29 Javascript
JavaScript通过字符串调用函数的实现方法
Mar 18 Javascript
JS+CSS实现六级网站导航主菜单效果
Sep 28 Javascript
jQuery中cookie插件用法实例分析
Dec 04 Javascript
基于jquery实现最简单的选项卡切换效果
May 08 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
Aug 24 Javascript
Express系列之multer上传的使用
Oct 27 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
Nov 04 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设计模式 Visitor 访问者模式
2011/06/28 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
php中spl_autoload详解
2014/10/17 PHP
thinkPHP查询方式小结
2016/01/09 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
Python编程中的异常处理教程
2015/08/21 Python
python模块之re正则表达式详解
2017/02/03 Python
python爬虫基本知识
2018/03/05 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
Pycharm安装python库的方法
2020/11/24 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
销售员自我评价怎么写
2013/09/19 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
音乐幼师求职信
2014/07/09 职场文书
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL