Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/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
Javascript jQuery:将元素移动到另一个元素,然后再移动回来,会使该元素不可访问_Javascript_Jquery - Fatal编程技术网

Javascript jQuery:将元素移动到另一个元素,然后再移动回来,会使该元素不可访问

Javascript jQuery:将元素移动到另一个元素,然后再移动回来,会使该元素不可访问,javascript,jquery,Javascript,Jquery,在我的脚本中,我试图将一个元素(列表)从一个父元素(仅文本)移动到另一个父元素(列表),然后再移动回来(列表)。问题是,当我将元素移回原始父元素(ul)时,它变得不可单击。我认为在remove()上使用detach()可能会奏效,但没有什么区别 $(document).ready(function() { $("#inventoryWeapon li").click(function(event) { var clickedId = event.target.id; if

在我的脚本中,我试图将一个元素(列表)从一个父元素(仅文本)移动到另一个父元素(列表),然后再移动回来(列表)。问题是,当我将元素移回原始父元素(ul)时,它变得不可单击。我认为在remove()上使用detach()可能会奏效,但没有什么区别

$(document).ready(function() {
  $("#inventoryWeapon li").click(function(event) { 
    var clickedId = event.target.id;
    if ($("td#weapon").is(":empty")) {
      $("td#weapon").text(clickedId); 
      $(this).detach(); 
    }
  });
  $("td#weapon").click(function(event) { 
    var unequipping = $(this).text();
    $("#inventoryWeapon").append("<li id='" + unequipping + "'>" + unequipping + "</li>"); 
    $(this).detach();
  });
});
$(文档).ready(函数(){
$(“#inventorywearm li”)。单击(函数(事件){
var clickedId=event.target.id;
如果($(“td#武器”)为(“:空”)){
$(“td#武器”)。文本(单击EDID);
$(this.detach();
}
});
$(“td#武器”)。单击(功能(事件){
var unequipping=$(this.text();
$(“#库存武器”)。追加(“
  • “+unequiping+”
  • ”); $(this.detach(); }); });
    正如上面流行评论中所建议的,您没有移动元素。要移动它,请执行此操作

    $("td#weapon").click(function(event) {
        $(this).appendTo($("#inventoryWeapon"));
    });
    

    正如上面的流行评论所建议的,您没有移动元素。要移动它,请执行此操作

    $("td#weapon").click(function(event) {
        $(this).appendTo($("#inventoryWeapon"));
    });
    

    您不是在移动元素,而是在一个函数中删除元素,在另一个函数中创建具有相同ID和内容的新元素。但原始事件处理程序仅绑定到原始元素

    如果希望事件处理程序使用动态创建的元素,请使用事件委派:

    $("#inventoryWeapon").on("click", "li", function(event) {
        ...
    });
    
    或者,可以在拆离图元时保存该图元,而不是重新创建它:

    var savedLI;
    $("#inventoryWeapon li").click(function() {
        if ($("td#weapon").is(":empty")) {
            savedLI = $(this).detach();
            $("td#weapon").text(this.id);
        }
    });
    $("td#weapon").click(function() {
        if (savedLI) {
            $("#inventoryWeapon").append(savedLI);
            $(this).detach();
        }
    });
    

    您不是在移动元素,而是在一个函数中删除元素,在另一个函数中创建具有相同ID和内容的新元素。但原始事件处理程序仅绑定到原始元素

    如果希望事件处理程序使用动态创建的元素,请使用事件委派:

    $("#inventoryWeapon").on("click", "li", function(event) {
        ...
    });
    
    或者,可以在拆离图元时保存该图元,而不是重新创建它:

    var savedLI;
    $("#inventoryWeapon li").click(function() {
        if ($("td#weapon").is(":empty")) {
            savedLI = $(this).detach();
            $("td#weapon").text(this.id);
        }
    });
    $("td#weapon").click(function() {
        if (savedLI) {
            $("#inventoryWeapon").append(savedLI);
            $(this).detach();
        }
    });
    

    你不是在移动元素,而是在创建一个新元素。事件委派将大大简化此代码。与其移动元素,不如隐藏并显示它们?@Barmar,我希望将一个元素的内容更改为另一个元素。不过,这确实给了我一些想法。你不是在移动元素,而是在创建一个新元素。事件委派将大大简化此代码。与其移动元素,不如隐藏并显示它们?@Barmar,我希望将一个元素的内容更改为另一个元素。不过,这确实给了我一些想法。我完全错过了。谢谢在这个解决方案中,我还注意到我将'td'元素从它的表中拉出来,并将其推回到'li'元素中,这导致重新恢复的'#inventorywearm li'元素不可点击。我会支持这个解决方案,但我离这个能力还有几点距离。我完全错过了。谢谢在这个解决方案中,我还注意到我将'td'元素从它的表中拉出来,并将其推回到'li'元素中,这导致重新恢复的'#inventorywearm li'元素不可点击。我会支持这个解决方案,但我离这个能力还有几点距离。嗯,我以后可能会用这个花絮做点别的。谢谢嗯,我以后可能会用这个花絮做点别的。谢谢