2010-04-19 88 views
2

我正在使用jQuery可拖動和可拖拽。我在droppable的drop事件中克隆可拖動的小部件。獲取克隆元素的ID

我想獲取克隆元素的ID,這個元素將被髮送到帶有AJAX請求的應用程序。我無法取得ID。 console.log返回空白字符串。

另外,我想更改ajax請求的響應事件上克隆元素的ID。添加後如何特別更改克隆事件的ID?

+4

克隆後自己設置ID不是更明智嗎?否則,您最終會擁有多個具有相同ID的元素。 – Prutswonder 2010-04-19 10:37:18

回答

5

這是因爲jQuery的clone()方法不克隆該id。這樣做會破壞有效的DOM/HTML規則。您需要設置自己的ID,例如:

var dropElem = ui.draggable.html(); 
var clone = $(dropElem).clone(); 
var widgetType = 'ClonedElementX'; //whatever you want the id to be 
clone.attr('id',widgetType); 
$(this).append(clone); 

值得注意的是,在默認情況下該ID將不會與一個GET或POST(AJAX或標準要求)發送到服務器。如果它是「輸入」類型元素,則還需要設置「名稱」屬性。如果有在AJAX請求中發送ID的自定義代碼,您可以忽略它。

2

我不熟悉jQuery的克隆方法,但是HTML文檔可能沒有兩個具有相同ID的元素。也許jQuery去掉id以避免問題。我建議你使用原始的id併爲克隆分配一些新的id。