原生态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 相关文章推荐
一个JQuery写的点击上下滚动的小例子
Aug 27 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
Nov 28 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
Apr 21 Javascript
JavaScript中this详解
Sep 01 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
Dec 03 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
Sep 24 Javascript
javascript中replace使用方法总结
Mar 01 Javascript
在vue中多次调用同一个定义全局变量的实例
Sep 25 Javascript
vue远程加载sfc组件思路详解
Dec 25 Javascript
vue2路由方式--嵌套路由实现方法分析
Mar 06 Javascript
基于javascript实现碰撞检测
Mar 12 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树的代码,可以嵌套任意层
2006/10/09 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
js 数组克隆方法 小结
2010/03/20 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
JS装饰器函数用法总结
2018/04/21 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
深入理解Python3中的http.client模块
2017/03/29 Python
python通过zabbix api获取主机
2018/09/17 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
UGG英国官方网站:UGG UK
2018/02/08 全球购物
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
保安部任务及岗位职责
2014/02/25 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书