私はもともと、どのセルが選択されたかを決定したかったのですが、それらが機能しなかったことがわかりました。マウスが押された後にどの細胞が通過したかを判断することしかできませんでした。
私が投稿した理由は、このケースには多くの興味深いことがあると思うからです。
オンマウスオーバーの連続トリガーは、多くの重複要素を引き起こします
イベントはテーブル全体に縛られているため、未定義も表示されます
マウスの繰り返しのエントリと出口は、同じ要素の断続的な繰り返しを引き起こします。
それらを解決する方法!
<表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> </td> </td> </td> </td> </td> </td>
window.onload = function(){var flag = false; <br> //マウスがプレスされている場合、それは真実であり、手放すことは真のvar indexs = []; <br> //テーブルの位置全体にマウスを通過するセルを保存するために使用され、マウスが押されたときに初期化されます。インデックス= []; } dnf.onmouseMove = function(e){if(flag)//マウスが押された場合にのみ、化合物コードが実行されます{indexs.push(e.target、dnf.getelementsbytagname( "td"))}} dnf.onmouseup = function(){fals; deleteUndefined(); //境界を通過するため、null要素deleterepaint()が表示されます; // onmouseoverは一度トリガーするだけでなく、セルを繰り返しアラート(インデックス)を通過することを選択します。 } function deleterepaint(){for(var j = 0; j <indexs.length; j ++)// jth要素が一意であることを確認{var head = indexs [j]; for(var i = j+1; i <indexs.length; i ++)// jth duplicate {if(head == indexs [i]){indexs.splice(i、1);私 - ; }}}} function deleteUndefined(){for(var i = 0; i <indexs.length; i ++){if(typeof indexs [i] == "undefined"){indexs.splice(i、1);私 - ; }}} function search(a、a){var length = a.length; for(var i = 0; i <length; i ++){if(a == a [i]){return i; }}}}} </script>上記の元のJSの記事は、マウスを押した後、それらのセルを通過した後、エディターがあなたと共有する簡単な例です。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。