Je voulais à l'origine déterminer quelles cellules étaient sélectionnées, mais il a été constaté qu'ils ne fonctionnaient pas. Je ne pouvais juger quelles cellules qui passaient après que la souris ait été pressée.
La raison pour laquelle je l'ai posté est que je pense qu'il y a beaucoup de choses intéressantes dans le cas.
Le déclencheur continu de OnMouseOver provoque de nombreux éléments en double
Puisque l'événement est lié à l'ensemble du tableau, un non-défini apparaît également
L'entrée et la sortie répétées de la souris entraîneront une répétition intermittente du même élément.
Comment les résoudre!
<table id = "dnf"> <tr> <td Rowspan = "2"> 2 </td> <td> 2 </td> <td> 4 </td> </tr> <tr> <td> 2 </td> <td> 4 </td> </tr> <tr> <td> 2 </td> <td> 4 </td> <td> 2 </td> <td> 4 </td>
window.onload = function () {var flag = false; <br> // Lorsque la souris est enfoncée, elle est vraie, et le laisser aller est de vrai index var = []; <br> // utilisé pour stocker la cellule passant par la souris dans toute la position du tableau, et est initialisé lorsque la souris est enfilée, dnf.onMousedown = function () {Flag = True; indexS = []; } dnf.onMouSemove = function (e) {if (flag) // Seule lorsque la souris est enfoncée, le code composé sera exécuté {index.push (search (e.target, dnf.getElementsByTagName ("td")))}} dnf.onMousheUp = function () {Flag = false; DeleteUndEfined (); // Parce qu'il passe par la bordure, l'élément nul DeleteRepaint () apparaîtra; // parce que OnMouseOver ne déclenchera pas seulement une fois, et nous choisissons de passer à travers une cellule à plusieurs reprises alerte (index); } fonction deleteRepaint () {for (var j = 0; j <indexs.length; j ++) // assurez-vous que l'élément jth est unique {var head = indexs [j]; pour (var i = j + 1; i <index.length; i ++) // supprimer le JTH DUPLICATE {if (head == indexs [i]) {index.splice (i, 1); je--; }}}} fonction DeleteUnDefined () {for (var i = 0; i <index.length; i ++) {if (typeof indexs [i] == "Undefined") {index.splice (i, 1); je--; }}} Recherche de fonction (a, a) {var longueur = a.Length; pour (var i = 0; i <length; i ++) {if (a == a [i]) {return i; }}}}} </ script>L'article JS original ci-dessus, après avoir appuyé sur la souris, a traversé ces cellules, est l'exemple simple de l'éditeur partageant avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.