0
我需要为我的web应用程序添加拖放功能。 jquery-ui成为我的首选。我已阅读jQuery-ui网站中的教程并开始编程。 如果我使用这个文件中的静态元素,这个函数工作正常。但是当我使用ajax从数据库中生成元素时,这些元素不能被拖放。 我粘贴下面我的代码:拖放动态生成的html元素
<ul id="employee">
<li>
<h5>33333333</h5>
<img src='images/employee.png' width='96' height='96' />
</li>
<li>
<h5>33333333</h5>
<img src='images/employee.png' width='96' height='96' />
</li>
<li>
<h5>33333333</h5>
<img src='images/employee.png' width='96' height='96' />
</li>
<li>
<h5>33333333</h5>
<img src='images/employee.png' width='96' height='96' />
</li>
</ul>
$(document).ready(function() {
$("#employee li").draggable();
});
这些代码做工精细。我可以拖动元素。
然而,当我使用动态生成的HTML元素象下面这样:
function loadEmployee() {
$.getJSON("employee!find.action", function(data) {
var showEmployee = $("#employee");
showEmployee.html("");
$.each(data.employeeList, function(i, employee) {
newDiv = $("<li>");
var div = "<h5>" + employee.number + "</h5>";
div += "<img src='images/employee.png' width='96' height='96' //>"
newDiv.html(div).appendTo(showEmployee);
});
showEmployee.show();
});
}
$(document).ready(function() {
loadEmployee();
$("#employee li").draggable();
});
这些代码可以显示雇员的信息,但拖动功能不起作用,我怎样才能解决这个问题?先谢谢你!
这是在SO上发现的一个常见问题。试试看jQuery的.live()函数。可能您的可拖动元素没有被应用,因为它们是在可拖动init之后加载的。 –
我解决了这个问题。而不是使用$(“#employee li”)。draggable();我将newDiv.html(div).appendTo(showEmployee)命令更改为newDiv.html(div).appendTo(showEmployee).draggable();我不确定这是否是一个好的解决方案,但它现在解决了我的问题。 –