Php 如果由Ajax创建,则可拖动div不起作用
我正在使用jQuery和Ajax将一组div加载到可滚动div(“letterHolder”)中: 如果我将可拖动代码放在页面标题中,它就不起作用,如果我将代码放在页面末尾,它也不起作用Php 如果由Ajax创建,则可拖动div不起作用,php,jquery,ajax,draggable,Php,Jquery,Ajax,Draggable,我正在使用jQuery和Ajax将一组div加载到可滚动div(“letterHolder”)中: 如果我将可拖动代码放在页面标题中,它就不起作用,如果我将代码放在页面末尾,它也不起作用 在我尝试使用Ajax创建div之前,它工作得很好。我认为,在使用Ajax之前,它工作得很好,但不适用于Ajax的原因是,您正在使用选择器调用draggable(),该选择器用于DOM中尚未包含的元素。如果在接收到AJAX结果并将元素附加到DOM之后调用元素上的draggable(),则应该可以工作 使用jQue
在我尝试使用Ajax创建div之前,它工作得很好。我认为,在使用Ajax之前,它工作得很好,但不适用于Ajax的原因是,您正在使用选择器调用
draggable()
,该选择器用于DOM中尚未包含的元素。如果在接收到AJAX结果并将元素附加到DOM之后调用元素上的draggable()
,则应该可以工作
append()
函数将DOM而不是html()添加到元素中
file1
<代码>文件2。。。作为来自服务器的Json数组
并重写以下内容:
<script type="text/javascript">
$.ajax({
url: "myphpscript.php",
dataType: "json",
success: function(result) {
$.each(result,function(k,v){
$(".letterHolder").append($('<div></div>').html(v).addClass('drag_letter').draggable({
cursor: 'move',
revert: true,
helper: 'clone'
}));
});
}
});
</script>
$.ajax({
url:“myphpscript.php”,
数据类型:“json”,
成功:功能(结果){
$。每个(结果、函数(k、v){
$(“.letterHolder”).append($('').html(v).addClass('drag_letter').draggable({
光标:“移动”,
回复:对,
助手:“克隆”
}));
});
}
});
如果内容是用ajax添加的,则需要将事件处理程序附加到该函数。使用.on()
附加事件句柄您是否使用Jquery Ui
?这很有效,谢谢!但是我真的不明白这行中的“k”是什么意思:$。每个(结果,函数(k,v){。你能解释一下吗?$。每个
用于获取数组k
是数组键,v
是数组值,你可以使用$(这个)
而不是v
;)所以请接受我的回答……这并不是问题的答案。要评论或要求作者澄清,请在他们的帖子下方留下评论。-@Cristeblonde虽然措辞有点咄咄逼人,但他实际上提出了一个适用的解决方案并回答了问题question@CrisDeBlonde对不起,我已经编辑过了,以便给出正确的解释。
<div class="letterHolder">
<div class="drag_letter">file1</div>
<div class="drag_letter">file2</div>
<div class="drag_letter">file3</div>
etc.
</div>
$(".drag_letter").draggable({
cursor: 'move',
revert: true,
helper: 'clone'
});
<script type="text/javascript">
$.ajax({
url: "myphpscript.php",
dataType: "json",
success: function(result) {
$.each(result,function(k,v){
$(".letterHolder").append($('<div></div>').html(v).addClass('drag_letter').draggable({
cursor: 'move',
revert: true,
helper: 'clone'
}));
});
}
});
</script>