2012-03-12 34 views
0

我有兩個並排的表格。當我通過將鼠標拖到這些行上來選擇第一個表中的多個行時,我需要在第二個表中選擇相同的行。 在Firefox中沒有任何延遲,但是在IE8中執行此操作時出現延遲,如果我將鼠標拖得過快,則兩者之間的行未選中。兩個表格中的每一行都有唯一的ID,因此我知道在第二個表格中突出顯示第一個表格中的行時,必須突出顯示哪一行。第一個錶行的id是「f +行的訂單號」,第二個表的行是「d +行的訂單號」。第一個表的id是「fixedcolumntable」,第二個表是「run」。 這裏是我的代碼:在IE 8中選擇幾個表格的行比較慢Firefox

$("#fixedcolumntable").delegate("tr", "mousedown", function() { 


     var id = ($(this).attr("id")).substring(1); 

     $("#run >tbody> tr#d" + id).addClass("selectedrow"); 

     isMouseDown = true; 

     return false; // prevent text selection 
    }); 
    $("#fixedcolumntable").delegate("tr", "mouseover", function() { 


     if (isMouseDown) { 

      var id = ($(this).attr("id")).substring(1); 

      $("#run >tbody> tr#d" + id).addClass("selectedrow"); 

     } 


    }); 
    $("#fixedcolumntable").delegate("tr", "mouseup", function() { 


     isMouseDown = false; 

    }); 

回答

0

首先,你可能想的mouseenter事件,而不是mouseover。如果mouseover事件進入任何子元素,它將多次觸發,這可能會導致您的放緩。

要處理錯過的事件,您應該跟蹤鼠標落在哪一行,然後在mouseenter上選擇當前行和第一行之間的所有行,並取消選擇其他行。這還有一個額外的好處,即讓您拖動鼠標取消選擇最後一行,而不必重新開始,如果您不小心拖得太遠。