2014-11-22 44 views
4

如何在當前行中拖動拖動開始和拖動結束之間的所有單元格,只能拖動當前行選擇行,需要防止垂直拖拽如何在當前行中拖動拖動開始和拖動結束之間的所有單元格,拖動只能在當前行中拖動

檢查我的小提琴http://jsfiddle.net/kannankds/3xakkja9/3/

$(function() { 
    var isMouseDown = false; 
    $("#mytable td") 
     .mousedown(function() { 
      isMouseDown = true; 
      $(this).toggleClass("hilight"); 
      var $this = $(this); 
      parent = $this.closest('tr').get(0); 
      return false; // prevent text selection 
     }) 
     .mouseover(function() { 
      if (isMouseDown) { 
       $(this).toggleClass("hilight"); 
      } 
     }); 
    $(document) 
     .mouseup(function() { 
      isMouseDown = false; 
     }); 
}); 

回答

1

http://jsfiddle.net/3xakkja9/7/

添加一些修改里約熱內盧的代碼

$(function() { 
    var isMouseDown = false; 
    var currentTr; 

    $("#mytable td") 
     .mousedown(function() { 
     isMouseDown = true; 

     var $this = $(this); 
     currentTr = $this.parent(); //## new 

     clear(currentTr) //## clear all td hilight befor drag start 

     $this.addClass("hilight"); 


     return false; // prevent text selection 
    }) 
     .mouseover(function() { 
     if (currentTr.get(0) != $(this).parent().get(0)) { //## new 
      return false; 
     } 

     if (isMouseDown) { 
      $(this).addClass("hilight"); 
     } 
    }); 

    $(document) 
     .mouseup(function() { 
     isMouseDown = false; 
    }); 
}); 

function clear($tr) { 
    $tr.find('td').removeClass('hilight') 
} 
2

檢查了這一點。這個想法只是記住mousedown開始的行,並查看它是否與鼠標懸停中的當前行相同。

$(function() { 
    var isMouseDown = false; 
    var currentTr;  
    $("#mytable td") 
    .mousedown(function() { 
     isMouseDown = true; 

     $(this).toggleClass("hilight"); 
     var $this = $(this); 
     currentTr = $this.closest('tr').get(0); 
     return false; // prevent text selection 
    }) 
    .mouseover(function() { 
     if(currentTr != $(this).closest('tr').get(0)){ 
      return false; 
     } 

     if (isMouseDown) { 
     $(this).toggleClass("hilight"); 
     } 
      }); 

    $(document) 
    .mouseup(function() { 
     isMouseDown = false; 
    }); 
}); 

http://jsfiddle.net/3xakkja9/5/

+0

如果是這樣的東西,使之解決爲他人 – Ryo 2014-11-22 05:51:52

+0

雅其權利,但還有一兩件事需要當我們點擊第一個單元格並拖出到最後一個單元格時,在拖動開始和拖動之間爲所有單元格着色 – 2014-11-22 06:10:49

+0

然後需要將所有細胞着色起始和終止細胞 – 2014-11-22 06:13:25