2012-01-28 32 views
0

我想優化頁面上的響應時間與「大」的表,這是一個jQuery的droppable,接受〜6 draggables。與其他人一樣,我在製作每個可投入的應用程序時都看到了糟糕的響應時間。我讀過this postthis post,但我似乎無法讓我的代碼正常工作。JQuery droppable和大型表

我的基本問題是我不知道如何獲取可拖動元素的引用。看來我能訪問的唯一元素是實際的可拖動元素。

下面是我定義我的jQuery代碼:

$("#grid table").droppable({ 
        //disabled: 'true', 
        //activate: function (event, ui) { 
        //   console.log("Activated table") 
        //}, 
        //over: function (event, ui) { 
         //  console.log("Dragged over") 
        //}, 
        //activeClass: "ui-state-default", 
        //hoverClass: "ui-state-hover", 
        accept: ":not(.ui-sortable-helper)", 
        tolerance: 'pointer', 
        drop: function(event, ui) { 
          console.log("draggable DROPPED!!!"); 
          //$(this).animate({ backgroundColor: ui.draggable.attr("colorValue") }, 250); 
          var cell = document.elementFromPoint(event.pageX - $(window).scrollLeft(), event.pageY - $(window).scrollTop()); 

          console.log('Dropped cell is'+cell); 
          console.log(ui.position) 
          console.log(ui.offset) 
          console.log(document.elementFromPoint(ui.position.left, ui.position.top)) 
          $(cell).animate({ backgroundColor: ui.draggable.attr("colorValue") }, 250); 

          console.log('Setting background to:'+ui.draggable.attr("colorValue")); 
        } 

你可以提供任何幫助深表感謝。

回答

1

$(本)在下降:函數(事件,UI)是指可拖動滴入

+0

正確的,但在這種情況下,由於可放開設置在

標籤,這是指表中的元素。我需要找到可拖動的特定​​。 – JJensL2012-01-28 13:50:27

+0

從快速查看我看到兩種方法 - 設置每個td爲可投放或計算td位置 – krasu 2012-01-28 15:27:20

+0

將每個td設置爲可投放是一個巨大的性能瓶頸。我試圖通過使用document.elementFromPoint來計算我上面的代碼中的td位置,但這是返回可拖動的img標記而不是td。你會如何推薦定位td? – JJensL 2012-01-28 15:51:34