第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)于事件的疑惑,請看代碼.

關(guān)于事件的疑惑,請看代碼.

繁星點點滴滴 2019-03-13 18:18:20
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)該一定是有地方不一樣,到底哪不一樣?對于事件,一定是有什么我理解錯了的地方.或者是依賴的地方,希望高手指條明路.
查看完整描述

1 回答

?
倚天杖

TA貢獻1828條經(jīng)驗 獲得超3個贊

看文檔.empty() | jQueryAPI中文文檔

為了避免內(nèi)存泄漏,jQuery先移除子元素的數(shù)據(jù)和事件處理函數(shù),然后移除子元素。
如果你想刪除元素,不破壞他們的數(shù)據(jù)或事件處理程序(這些綁定的信息還可以在之后被重新添加回來),請使用.detach()代替。

另外建議你console下數(shù)組吧,jQ封裝的東西很多,學(xué)了原生的話可以和原生對比下。


查看完整回答
反對 回復(fù) 2019-03-26
  • 1 回答
  • 0 關(guān)注
  • 365 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號