2017-05-16 13 views
0
elem.addEventListener('click',function(e){ 
    if(e.target && e.target.matches("span#save-icon")){ 
     var HEX = e.target.parentNode.innerHTML.split('span')[2].split('>')[2].split('<')[0]; 
     save_to_my_space(HEX); 
     console.log(HEX); 
    } 
    }); 

ここelemはは私がelemはのすべての子要素に委任イベントを使用しています、8人の子供を持つ親のdivです。 elemの子供のいずれかをクリックしてイベントを発射すると、イベントは複数回、chidlrenの数に等しい回数発射されますelemが持っています。この問題を解決するには? @Georgeで述べたようにjavascriptでイベントデリゲーションを使用するには?

+0

をチェックするだけで 'するevent.stopPropagation()イベントの委任を防ぎます;'。 – Christoph

+0

そして、今後、関連するHTMLとCSSも投稿してください。 –

+0

ありがとうございますが、event.stopPropagation();を使用する方法私はバニラJSを使用しています –

答えて

2

event.stopPropagation()を使用すると、問題

を解決するドキュメントにhere.

elem.addEventListener('click',function(e){ 
    if(e.target && e.target.matches("span#save-icon")){ 
     e.stopPropagation() 
     var HEX = e.target.parentNode.innerHTML.split('span')[2].split('>')[2].split('<')[0]; 
     save_to_my_space(HEX); 
     console.log(HEX); 
    } 
    }); 
+0

はい、私の問題は解決されました、ありがとう。 –