0

我需要從「可拖動」的表格行中獲取id。除了「ID_1」,一切正常。我似乎無法得到這個價值。我究竟做錯了什麼?如何在使用jQuery UI時獲取可拖動表格行的ID?

HTML:

<table> 
    <tr class="droppable" id="value_2"> 
     <td>Stuff</td> 
    </tr> 
    .... 
</table> 

<table> 
    <tr class="draggable" id="value_1"> 
     <td>Stuff</td> 
    </tr> 
    .... 
</table> 

的Jquery:

$(document).ready(function() { 
var ID_1 
$(".draggable").draggable({cursor: 'move', 
    helper: function(event) { 
     return $('<div class="drag_row"><table></table></div>') 
     .find('table').append($(event.target).closest('tr').clone()).end(); 
    }, 
    appendTo: 'body' 
}); 
$(".droppable").droppable({ 
    over: function(event, ui) 
     { 
      ID_1 = $(this).find("tr").attr('id'); 
     }, 
    drop: function(event, ui) { 
     var ID_2 = $(this).attr('id'); 

     $.ajax({ 
     type: "POST", 
     url: 'www.mydomain.com/'+ID_1+'/'+ID_2, 
     dataType: 'html', 
     success: function(){ 
     } 
    }); 
    return false; 
    } 
}); 
}); 
+0

什麼是您的HTML是什麼樣子?你有沒有證明這一點的jsfiddle? – slashingweapon

+0

我添加了HTML的基本形式。在這兩個表中有幾行,每行都有自己的''id''(當然)。 –

回答

2

使用ui.draggable獲得拖動的元素,所以代碼應該是:

$(".droppable").droppable({ 
    over: function(event, ui) { 
     ID_1 = ui.draggable.attr('id'); 
    }, 
    drop: function(event, ui) { 
     var ID_2 = ui.draggable.attr('id'); 
     // existing stuff 
    } 
}); 
+0

這不起作用。我認爲這是因爲我在拖動''table''標籤時,如何將可拖動的''tr''包裹起來。 –

+0

@ClaireEmery,如果你想找到使用** ui.draggable.find(「selector」)。attr(「id」)的特定元素的id,ui.draggable表示整個拖拽的元素。** –

+0

謝謝,但這不起作用。 –

0

你可以使用event.target。 id代替

這裏是一個小提琴(從舊的項目),顯示的console.log查看日誌約痊癒了容器:http://jsfiddle.net/Bouillou/QvRjL/97/

$(".droppable").droppable({ 
    over: function(event, ui) { 
     ID_1 = event.target.id; 
    }, 
    drop: function(event, ui) { 
     var ID_2 = event.target.id; 
     // existing stuff 
    } 
}); 
相關問題