Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 为什么.prepend()只能工作一次?_Jquery_Events_Dom_Prepend - Fatal编程技术网

Jquery 为什么.prepend()只能工作一次?

Jquery 为什么.prepend()只能工作一次?,jquery,events,dom,prepend,Jquery,Events,Dom,Prepend,我正在制作一个待办事项列表应用程序,我在其中使用jQuery,当用户点击Add按钮时,一个新任务会附加到taskswraperdiv,但问题是,它只发生一次。当我再次按下Add按钮时,什么也没有发生。我已经检查了DOM树,仍然是相同的,只有一个mainTaskFragprepend。这是我的密码: $(function(){ var mainTaskFrag = $("<div class='wholeTask'>"), mainTaskContents = $('&

我正在制作一个待办事项列表应用程序,我在其中使用jQuery,当用户点击
Add
按钮时,一个新任务会附加到
taskswraper
div,但问题是,它只发生一次。当我再次按下
Add
按钮时,什么也没有发生。我已经检查了DOM树,仍然是相同的,只有一个
mainTaskFrag
prepend。这是我的密码:

$(function(){
    var mainTaskFrag = $("<div class='wholeTask'>"),
    mainTaskContents = $('<div class="mainTaskWrapper clearfix">\
                            <div class="mainMarker"></div>\
                            <label for="task1">This is task1</label>\
                            <div class="holder"></div>\
                            <div class="subTrigger"></div>\
                            <div class="checkButton"></div>\
                            <div class="optTrigger"></div>\
                            <div class="mainOptions">\
                                <ul>\
                                    <li id="mainInfo">Details</li>\
                                    <li id="mainDivide">Divide</li>\
                                    <li id="mainEdit">Edit</li>\
                                    <li id="mainDelete">Delete</li>\
                                </ul>\
                            </div>\
                        </div>');    

  mainTaskFrag.prepend(mainTaskContents);

  $("#addMain").on("click", function(){                
      $("#tasksWrapper").prepend(mainTaskFrag);
  });    
});
$(函数(){
var mainTaskFrag=$(“”),
mainTaskContents=$('\
\
这是任务1\
\
\
\
\
\
    \ 详细信息\ 划分\ 编辑\ 删除\
\ \ '); mainTaskFrag.prepend(mainTaskContents); $(“#addMain”)。在(“单击”,函数(){ $(“#taskswraper”).prepend(主任务框架); }); });

因为与
$(“#addMain”)
的绑定已不存在。如果你再做一次绑定,它应该会起作用,尽管我相信有人会想出一个更好的方法,不需要再做绑定。

你可以使用
clone
方法:

$("#addMain").on("click", function(){             
      $("#tasksWrapper").prepend(mainTaskFrag.clone());
});  

.prepend()
方法将指定的内容作为jQuery集合对象中每个元素的第一个子元素插入(要将其作为最后一个子元素插入,请使用
.append()
)。

您能用一个?Hmmm重现这个问题吗,我从来没有想过,我实际上认为
.prepend()
只需复制一份
mainTaskFrag
并对其进行预处理。@Rafael是的,
prepend
不会
克隆该对象。