2013-06-21 2 views
1

Я добавляю динамический контент на свою страницу, когда он загружается. Я хочу, чтобы строки, которые я добавляю для перетаскивания, и хочу иметь возможность извлекать значение первого <td> внутри перетаскиваемого <tr>. Я сделал строки перетаскиваемыми, но я не могу получить первое значение, и мне интересно, если это потому, что они добавлены динамически.jQuery UI Draggable Dynamic Content

JQuery -

$(document).on('click', '.draggableJob', function() { 
//draggable jobs 
    $(".draggableJob").draggable({ 
     cursor: "move", 
     cursorAt: {top: 25, left: 75}, 
     helper: function(event) { 
      var name = $(this).find('td').first().val(); 
      return $("<div class='draggingJobHelper'>" + name + "</div>"); 
      } 
    }); 

HTML -

socket.on('loadtable', function (table) { 
      $("#tableBody").append('<tr class ="draggableJob"><td>' + table["name"] + 
       '</td><td>' + table["Location"] + '</td><td>' + table["Path"] + '</td><td>' + table["Foobar"] + 
       '</td><td><a href="#runModal" role="button" class="btn btn-success" data-toggle="modal"><i class="icon-edit icon-white"></i></a>' + 
       '</td><td><a href="#editModal" role="button" class="btn btn-warning edit" data-toggle="modal"><i class="icon-edit icon-white"></i></a>' 
       + '</td><td><input type = "checkbox"></td></tr>' 
      ); 
     }); 
+0

Я думаю, для '' вы используете 'html()', а не 'val()' Так что это должно быть '$ (this) .find ('td'). First(). Html();' – stackErr

+0

Действительно вы делать. Ничего похожего на JavaScript, чтобы заставить меня чувствовать себя глупым! – Ristoph

ответ

1

Вы используете только val() для входных элементов в противном случае вы должны использовать html()

Таким образом, вы код должен быть:

var name = $(this).find('td').first().html();