2017-08-03 6 views
1

clickイベントを後でajax呼び出しに追加する要素にバインドするにはどうすればいいですか?私はjQueryの中で、あなたがこのようにそれを行うことができます知っている:クリックしてajaxをロードするコンテンツ、純粋なJavaScript、jQueryなし

$(document).on('click', '.ajax-loaded-element' function(){}); 

が、私はこの時点でのjQueryを使用していませんよ。 私のアイデアはこのようなものですが、同じファイルを2回呼び出すとうまくいかない(それが不必要な場合はわかりませんが、防弾にしたいと思っています)。

bindAjaxBtn: function(selector, fnName) { 
    let isBinded = false; 
    document.addEventListener('click', function(e) { 
     const btn = document.querySelector(selector); 
     if(btn === e.target) { 
      if(!isBinded) { 
       btn.addEventListener('click', function() { 
        fnName(); 
        isBinded = true; 
       }); 
       btn.click(); 
      } 
     } 
    }); 
}, 

ご協力いただければ幸いです。 :)

答えて

0

非常に簡単です。あなたはこれを試すことができます。 これはあなたを助けるでしょう。コーディングハッピー

document.getElementById('btn').setAttribute('onClick','myfunction()'); 
 
function myfunction(){ 
 
    alert('Button Clicked'); 
 
}
<button id="btn">Click Here</button>

+0

いいえあなたのコードでは、親ノードのイベントをバインドしません。まだページにない要素にイベントをバインドします(ajaxがロードされているため)。 – Georgio

関連する問題