ตอนแรกฉันต้องการที่จะกำหนดเซลล์ที่ถูกเลือก แต่พบว่าพวกเขาไม่ทำงาน ฉันทำได้แค่ตัดสินว่าเซลล์ใดผ่านไปหลังจากที่เมาส์ถูกกด
เหตุผลที่ฉันโพสต์ก็คือฉันคิดว่ามีสิ่งที่น่าสนใจมากมายในกรณีนี้
ทริกเกอร์อย่างต่อเนื่องของ onmouseover ทำให้เกิดองค์ประกอบที่ซ้ำกันจำนวนมาก
เนื่องจากเหตุการณ์ถูกผูกไว้กับตารางทั้งหมดที่ไม่ได้กำหนดจึงปรากฏขึ้น
รายการซ้ำและการออกจากเมาส์จะทำให้เกิดการทำซ้ำเป็นระยะ ๆ ขององค์ประกอบเดียวกัน
วิธีแก้ปัญหา!
<table id = "dnf"> <tr> <td rowspan = "2"> 2 </td> <td> 2 </td> <td> 4 </td> </tr> <td> <td> 2 </td> <td> 4 </td> </tr> <td> <td>
window.onload = function () {var flag = false; <br> // เมื่อกดเมาส์มันเป็นจริงและการปล่อยไปเป็นดัชนี VAR จริง = []; <br> // ใช้เพื่อเก็บเซลล์ที่ผ่านเมาส์ในตำแหน่งทั้งหมด ดัชนี = []; } dnf.onmousemove = function (e) {if (flag) // เฉพาะเมื่อเมาส์ถูกกดรหัสผสมจะถูกดำเนินการ {indexs.push (การค้นหา (e.target, dnf.getElementByTagname ("td"))}} dnf.onmouseup = function deleteundefined (); // เพราะมันผ่านชายแดนองค์ประกอบ null deleteRepaint () จะปรากฏขึ้น; // เนื่องจาก onmouseOver จะไม่เพียง แต่กระตุ้นหนึ่งครั้งและเราเลือกที่จะผ่านเซลล์แจ้งเตือนซ้ำ ๆ (ดัชนี); } function deleTeRePaint () {สำหรับ (var j = 0; j <indexs.length; j ++) // ตรวจสอบให้แน่ใจว่าองค์ประกอบ jth นั้นไม่ซ้ำกัน {var head = indexs [j]; สำหรับ (var i = j+1; i <indexs.length; i ++) // ลบ jth ซ้ำ {ถ้า (head == ดัชนี [i]) {indexs.splice (i, 1); ฉัน--; }}}} ฟังก์ชั่น deleteUndefined () {สำหรับ (var i = 0; i <indexs.length; i ++) {ถ้า (indexs typeof [i] == "undefined") {indexs.splice (i, 1); ฉัน--; }}} การค้นหาฟังก์ชั่น (a, a) {var length = a.length; สำหรับ (var i = 0; i <length; i ++) {ถ้า (a == a [i]) {return i; }}}}} </script>บทความ JS ต้นฉบับข้างต้นหลังจากกดเมาส์ผ่านเซลล์เหล่านั้นเป็นตัวอย่างง่ายๆของการแบ่งปันโปรแกรมแก้ไขกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น