var $buttom=[]; //動態(tài)添加按鈕function addBtn() { var $dom = $('<button> 動態(tài)按鈕' + i++ + '</button>'); $dom.on('click',function(){ console.log($(this).html()); }); $buttom.push($dom); $.each($buttom,function(i,n){ $('#test1').append(n); });};//移除function del(){ $('#test1').empty();};//恢復(fù)按鈕function recov(){ $.each($buttom,function(i,n){ $('#test1').append(n); });};//恢復(fù)按鈕2function resetEve(){ $.each($buttom,function(i,n){ n.on('click',function(){ console.log($(this).html()); }); }); del(); $.each($buttom,function(i,n){ $('#test1').append(n); });}; //操作方式1://問題:先添加按鈕,點擊事件可以輸出控制臺log,移除后恢復(fù),事件就沒有了.addBtn();del();recov(); //操作方式2://問題:先添加按鈕,點擊事件可以輸出控制臺log,del()刪除后,用resetEve()方法添加,注意看里面內(nèi)容,//里面是重新綁定事件后,還調(diào)用了一次del().為什么然后在append到界面,為什么這個時候事件又可以響應(yīng).addBtn();del();resetEve(); //操作方式3://問題:先添加按鈕,點擊事件可以輸出控制臺log,不執(zhí)行刪除,直接用resetEve()方法添加,注意看里面內(nèi)容,//里面是重新綁定事件后,還調(diào)用了一次del().為什么然后在append到界面,為什么這個時候事件又可以響應(yīng).addBtn();//del();resetEve();問題: 用變量保存的$dom,通過$dom綁定的事件會隨著empty()失去作用;為什么通過$dom變量綁定的事件, 事件會丟失,這個變量命名還在,常規(guī)的理解中,它的事件也應(yīng)該還在,為什么就丟失了?為什么我通過操作方式2的方式,通過數(shù)組儲存這個$dom變量,又可以呢?這里面的數(shù)組明明就是指針,指向的就是$dom的變量.中間的差別我想不到.但應(yīng)該一定是有地方不一樣,到底哪不一樣?對于事件,一定是有什么我理解錯了的地方.或者是依賴的地方,希望高手指條明路.
關(guān)于事件的疑惑,請看代碼.
繁星點點滴滴
2019-03-13 18:18:20