首页 技术 正文
技术 2022年11月12日
0 收藏 557 点赞 3,360 浏览 1094 个字

本来是要判断那些单元格被选中,结果发现行不通,只能判断鼠标按下后,经过了那些单元格

之所以发出来,是觉得案例还有很多有意思的地方

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;     //当鼠标被按下时,为true,放开是为truevar indexs =[];      //用来存放鼠标经过的单元格在整个表格的位置,鼠标按下时被初始化,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>

  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,490
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,291