2013-03-15 28 views
0

我有一個有很多行的大表,每個表都有一個拖動處理程序。jquery ui可拖動將tr轉換爲div

我將使用哪個事件以便我可以修改HTML並將<tr>更改爲<div>

+0

什麼是與TD你的計劃數據? – 2013-03-15 14:06:16

+0

如在中,你如何將克隆的元素更改爲div?或者你是否從表格中刪除該行?顯示一些代碼。 – isherwood 2013-03-15 14:06:25

+1

'我怎麼可能發生可拖動的事件'這是什麼意思? – iappwebdev 2013-03-15 14:06:54

回答

1

你想要一個自定義的幫手。看到這個問題:Custom helper for jQuery UI Draggable

基本上,你想包裝你的內容在div而不是tr。這樣做的後果將是,你現在有td作爲div的孩子不會飛!所以,你可以做兩件事情之一:

  1. 可以去掉剛剛從該行甚至特定字段(SO問題我張貼的正是這樣做的 - 只是拉動某些元素爲拖動)內容
  2. 您可以代替使用tr包裝在表格元素中,使拖動事件成爲有效的獨立DOM片段,即拖動完整表格。

編輯:基於您的評論,做一些事情,你會單元1轉換爲h1和小區2到p,你會怎麼做:

$('selector').draggable({ 
    helper: function() 
    { 
    var $ret = $("<div></div>"); 
    $ret.append('<h1>' + $(this).find('td:nth-child(1)').text() + '</h1>'); 
    $ret.append('<p>' + $(this).find('td:nth-child(2)').text() + '</p>'); 
    // ... 

    return $ret; 
    } 

}); 
+0

這是完美的謝謝,我確切地知道如何去做。但是當我剛剛閱讀文檔時,它會說「一個將在拖拽時返回DOME元素的函數」。 – 2013-03-15 14:16:53

+0

這意味着下降的元素將是tr – 2013-03-15 14:17:18

+0

@JohnMagnolia好問題。它可能是最初的元素,因爲助手只是用於拖動的視覺表示。在放棄時,您可能需要從被刪除的原始元素中提取信息。看一下'drop'事件處理程序,你可以在事件處理程序中作爲'ui'對象的一部分訪問'helper'對象。請參閱http://api.jqueryui.com/droppable/#event-drop – 2013-03-15 14:20:19