我试图使jquery添加新的div,然后使其可拖动,但我一直在尝试和谷歌上寻找,我找不到任何东西,这里是我的代码如下
$(document).ready(function() {
$("#draggable").draggable({
containment: 'parent',
handle: 'drag_border',
drag: function(e, ui) {
var top = ui.position.top;
var left = ui.position.left;
$("#top").html(top);
$("#left").html(left);
}
});
});
function New_Text() {
$("<div id=\"draggable\" style=\"width: 200px; height: 50px; border:dashed thin; background-color: #fff\">Drag me</div>").appendTo("div#drag_border");
}
谢谢你
5条答案
按热度按时间camsedfj1#
如果你使用的是jQuery UI,那么创建你的元素并使其可拖动:
oiopk7p52#
这里的问题是,您是在尝试使DIV可拖动之后才创建它的。
jQuery事件只对JavaScript运行时存在的元素起作用-有一些方法可以使用
live
和delegate
函数来解决这个问题-但看起来你的插件不允许这样做。因此,如果代码需要保持不变,将创建DIV的位移动到可拖动函数的上方,它就会工作。
cgyqldqp3#
我没有试过,但这应该是可行的:
你想创建一个div,让浏览器将它添加到DOM树中,然后调用
draggable
函数。fv2wmkja4#
由于有些人在这里提到了
draggable()
函数,这是一个jQuery UI函数,这里有一个简短的how-to:在你的.html页面中添加以下一行(对jQuery UI的引用),在头部或主体的底部:
现在,要使#draggable可拖动,您可以在脚本中编写(您的脚本或对它的引用必须在对jQuery UI的引用之后):
js81xvg65#
如果你没有jquery UI,那么下面的解决方案会有所帮助。jquery-ui是造成问题,因为我的项目jquery版本,所以我必须实现一个自定义方法来处理。这是我为使jquery numpad可拖动而做的一个解决方案。