關于detach方法
<html>
<head>
????<meta?http-equiv="Content-type"?content="text/html;?charset=utf-8"?/>
????<script?src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
????<style?type="text/css">
????p?{
????????color:?red;
????}
????</style>
</head>
<body>
????<p>P元素1,默認給綁定一個點擊事件</p>
????<p>P元素2,默認給綁定一個點擊事件</p>
????<button?id="bt1">點擊刪除?p?元素</button>
????<button?id="bt2">點擊移動?p?元素</button>
????<script?type="text/javascript">
????$('p').click(function(e)?{
????????alert(e.target.innerHTML)
????})
????var?p;
????$("#bt1").click(function()?{
????????if?(!$("p").length)?return;?//去重
????????//通過detach方法刪除元素
????????//只是頁面不可見,但是這個節點還是保存在內存中
????????//數據與事件都不會丟失
????????p?=?$("p").remove();
????});
????$("#bt2").click(function()?{
????????//把p元素在添加到頁面中
????????//事件還是存在
????????$("body").append(p);
????});
????</script>
</body>
</html>這里我把detach改成了remove,怎么還是能夠append呢?
2017-03-16
p?=?$("p").remove(); ?p是一個對象,存儲的是兩個p節點 【<p>P元素1,默認給綁定一個點擊事件</p>?<p>P元素2,默認給綁定一個點擊事件</p>】,
remove刪除了兩個p節點及其綁定的事件,把刪除的兩個p節點存在了變量p里面,
detach刪除了兩個p節點,但是其綁定的事件還在,一同存在了變量p里面,
bt2 點擊事件的時候又把變量p加到body上了