أردت في الأصل تحديد الخلايا التي تم اختيارها ، لكن وجد أنها لم تنجح. لا أستطيع إلا أن أحكم على الخلايا التي مرت بعد الضغط على الماوس.
السبب الذي جعلني أنشرت هو أنني أعتقد أن هناك العديد من الأشياء المثيرة للاهتمام في القضية.
يؤدي الزناد المستمر لـ OnMouseover إلى العديد من العناصر المكررة
نظرًا لأن الحدث مرتبط بالجدول بأكمله ، يظهر غير محدد أيضًا
سيؤدي الدخول المتكرر وخروج الماوس إلى تكرار متقطع لنفس العنصر.
كيف تحلهم!
<table id = "dnf"> <tr> <td rowspan = "2"> 2 </td> <td> 2 </td> <td> 4 </td> </td> <td>
window.onload = function () {var flag = false ؛ <br> // عندما يتم الضغط على الماوس ، يكون صحيحًا ، والسماح للذهاب إلى فهرس var صحيح = [] الفهرسة = [] ؛ } dnf.onmouseMove = function (e) {if (flag) // فقط عند الضغط على الماوس ، سيتم تنفيذ رمز المركب {indexs.push (search (eTarget ، dnf.getElementSbyTagName ("td")))}} dnf.onmouseup = flag = flag = false ؛ SELETEUNDEFINTED () ؛ // لأنه يمر عبر الحدود ، سيظهر العنصر الخالي من الحذف () // لأن onMouseover لن يؤدي فقط مرة واحدة ، ونختار المرور عبر خلية تنبيه مرارًا وتكرارًا (فهرسات) ؛ } دالة deleterepaint () {for (var j = 0 ؛ j <indexs.length ؛ j ++) // تأكد من أن عنصر JTH فريد {var head = indexs [j] ؛ لـ (var i = j+1 ؛ i <indexs.length ؛ i ++) // حذف jth duplicate {if (head == indexs [i]) {indexs.splice (i ، 1) ؛ أنا--؛ }}}} دالة deleteundefined () {for (var i = 0 ؛ i <indexs.length ؛ i ++) {if (typeof indexs [i] == "undefined") {indexs.splice (i ، 1) ؛ أنا--؛ }}} بحث الوظيفة (a ، a) {var length = A.Length ؛ لـ (var i = 0 ؛ i <length ؛ i ++) {if (a == a [i]) {return i ؛ }}}}} </script>إن مقالة JS الأصلية أعلاه ، بعد الضغط على الماوس ، التي تم تمريرها عبر تلك الخلايا ، هي المثال البسيط لمشاركة المحرر معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.