Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery可拖动元素丢失_Jquery_Element_Draggable - Fatal编程技术网

jquery可拖动元素丢失

jquery可拖动元素丢失,jquery,element,draggable,Jquery,Element,Draggable,有谁能告诉我,在下面给定的代码中,当第一次拖动元素时,它可以正常工作,但当拖动新元素时,先前创建的元素的draggable属性将丢失。 如何在不丢失的情况下进行拖动 if(tag==normal_tag1.id) { normal_tag_d=' <div id="Normal_Tag1_div_dummy'+count1+'" class ="Normal_Tag1_div_dummy" >'+ 'Normal DUMMY</div

有谁能告诉我,在下面给定的代码中,当第一次拖动元素时,它可以正常工作,但当拖动新元素时,先前创建的元素的draggable属性将丢失。 如何在不丢失的情况下进行拖动

 if(tag==normal_tag1.id)
   {            
      normal_tag_d=' <div id="Normal_Tag1_div_dummy'+count1+'" class ="Normal_Tag1_div_dummy" >'+ 'Normal DUMMY</div>';
      document.getElementById('droppable').innerHTML+=normal_tag_d;
      var idx='#Normal_Tag1_div_dummy'+count1;
        $(idx).draggable(
        {
             revert: 'invalid'
        }
        );
        var droppable="#droppable";
        $(droppable).droppable({
            drop: function(ev,ui) {
            alert(ui.draggable);
            }
        });
      count1++;        
   }
else if(tag==normal_tag2.id)
   { 
      normal_tag2_d=' <div  id="Normal_Tag2_div_dummy'+count2+'" class ="Normal_Tag2_div_dummy" >'+
            'Normal DUMMY2</div>';
      var id='#Normal_Tag2_div_dummy'+count2;
      document.getElementById('droppable').innerHTML+=normal_tag2_d;
      $(id).draggable({
          revert: 'invalid'
      });
      $("#droppable").droppable({
        drop: function() {

        }
        });
      count2++;
   }
if(tag==normal_tag1.id)
{            
正常_标签_d=''+'正常假人';
document.getElementById('droppable')。innerHTML+=normal_tag_d;
变量idx='正常值'Tag1'分区'dummy'+count1;
$(idx).可拖动(
{
回复:“无效”
}
);
var droppable=“#droppable”;
$(可拖放)。可拖放({
下拉:功能(ev、ui){
警报(ui.draggable);
}
});
count1++;
}
else if(tag==normal_tag2.id)
{ 
正常标记2\u d=“”+
“正常DUMMY2”;
变量id='#正常Tag2_div_dummy'+count2;
document.getElementById('droppable')。innerHTML+=normal\u tag2\u d;
$(id).可拖动({
回复:“无效”
});
$(“#可拖放”)。可拖放({
drop:function(){
}
});
count2++;
}

如果Dragable位于Dropable内部,则在重写Dropable的innerHTML时,您将从DOM中删除它。您只需获取现有内容并向其中添加更多HTML,然后将其写回容器。这实际上删除了容器中的DOM元素,并将它们替换为与旧元素完全相同的新元素。旧元素上的任何处理程序都不会重新应用。我关心的另一件事是,变量的作用域不是包含块,而是在全局名称空间中。当然,您只包含了一个片段,因此我可能会误解代码在这两方面的应用

顺便说一句,您最好使用jquery来添加元素,而不是简单的javascript

if (tag==normal_tag1.id)
{            
      $('<div id="Normal_Tag1_div_dummy'+count1+'" class ="Normal_Tag1_div_dummy" >'+ 'Normal DUMMY</div>')
          .appendTo('#droppable' ) // note this doesn't clear #droppable
          .draggable( {
                revert: 'invalid'
           });
      $('#droppable').droppable({
           drop: function(ev,ui) {
                     alert(ui.draggable);
                 }
      });
}
... 
if(tag==normal_tag1.id)
{            
$(''+'正常虚拟')
.appendTo('#droppable')//注意,这不清楚#droppable
.draggable({
回复:“无效”
});
$(“#可拖放”)。可拖放({
下拉:功能(ev、ui){
警报(ui.draggable);
}
});
}
...