原生态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和Servlet实现跨域提交请求示例分享
Feb 12 Javascript
JavaScript实现删除,移动和复制文件的方法
Aug 05 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
May 16 Javascript
jQuery获取file控件中图片的宽高与大小
Aug 04 Javascript
Vue实现双向绑定的方法
Dec 22 Javascript
jQuery操作之效果详解
May 19 jQuery
基于ES6 Array.of的用法(实例讲解)
Sep 05 Javascript
ejsExcel模板在Vue.js项目中的实际运用
Jan 27 Javascript
讲解vue-router之命名路由和命名视图
May 28 Javascript
基于webpack4+vue-cli3项目实现换肤功能
Jul 17 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
正则表达式语法
2006/10/09 Javascript
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
微信小程序 教程之小程序配置
2016/10/17 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
浅谈python数据类型及类型转换
2017/12/18 Python
python编写弹球游戏的实现代码
2018/03/12 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
python如何修改装饰器中参数
2018/03/20 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
物理系毕业生自荐信
2013/11/01 职场文书
收款委托书
2014/10/14 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
python中的random模块和相关函数详解
2022/04/22 Python