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

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

檢測DOM中的更改

檢測DOM中的更改

檢測DOM中的更改當某些div或輸入添加到html時,我希望執(zhí)行一個函數(shù)。這個是可能的嗎?例如,添加一個文本輸入,然后調(diào)用該函數(shù)。
查看完整描述

3 回答

?
繁星點點滴滴

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

IE9+,F(xiàn)F,Webkit:


使用突變觀察員回到不受歡迎的地方突變事件如有需要:

(下面的例子是,如果僅針對附加或刪除節(jié)點的DOM更改)


var observeDOM = (function(){

  var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;


  return function( obj, callback ){

    if( !obj || !obj.nodeType === 1 ) return; // validation


    if( MutationObserver ){

      // define a new observer

      var obs = new MutationObserver(function(mutations, observer){

          callback(mutations);

      })

      // have the observer observe foo for changes in children

      obs.observe( obj, { childList:true, subtree:true });

    }

    

    else if( window.addEventListener ){

      obj.addEventListener('DOMNodeInserted', callback, false);

      obj.addEventListener('DOMNodeRemoved', callback, false);

    }

  }

})();


//------------< DEMO BELOW >----------------

// add item

var itemHTML = "<li><button>list item (click to delete)</button></li>",

    listElm = document.querySelector('ol');


document.querySelector('body > button').onclick = function(e){

  listElm.insertAdjacentHTML("beforeend", itemHTML);

}


// delete item

listElm.onclick = function(e){

  if( e.target.nodeName == "BUTTON" )

    e.target.parentNode.parentNode.removeChild(e.target.parentNode);

}

    

// Observe a specific DOM element:

observeDOM( listElm, function(m){ 

   var addedNodes = [], removedNodes = [];


   m.forEach(record => record.addedNodes.length & addedNodes.push(...record.addedNodes))

   

   m.forEach(record => record.removedNodes.length & removedNodes.push(...record.removedNodes))


  console.clear();

  console.log('Added:', addedNodes, 'Removed:', removedNodes);

});



// Insert 3 DOM nodes at once after 3 seconds

setTimeout(function(){

   listElm.removeChild(listElm.lastElementChild);

   listElm.insertAdjacentHTML("beforeend", Array(4).join(itemHTML));

}, 3000);

<button>Add Item</button>

<ol>

  <li><button>list item (click to delete)</button></li>

  <li><button>list item (click to delete)</button></li>

  <li><button>list item (click to delete)</button></li>

  <li><button>list item (click to delete)</button></li>

  <li><em>&hellip;More will be added after 3 seconds&hellip;</em></li>

</ol>


查看完整回答
反對 回復(fù) 2019-05-30
  • 3 回答
  • 0 關(guān)注
  • 704 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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