Php 如果由Ajax创建,则可拖动div不起作用

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

我正在使用jQuery和Ajax将一组div加载到可滚动div(“letterHolder”)中:

如果我将可拖动代码放在页面标题中,它就不起作用,如果我将代码放在页面末尾,它也不起作用


在我尝试使用Ajax创建div之前,它工作得很好。

我认为,在使用Ajax之前,它工作得很好,但不适用于Ajax的原因是,您正在使用选择器调用
draggable()
,该选择器用于DOM中尚未包含的元素。如果在接收到AJAX结果并将元素附加到DOM之后调用元素上的
draggable()
,则应该可以工作

  • 使用jQuery或java脚本
    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>