2017-02-22 12 views
1

をjQueryのイベントハンドラを変換するにはどうすれば使用するコードを持っていました。複雑な理由から、このコードをに移動してから jQueryをロードする必要がありました。このコードを純粋なJavaScriptで書くにはどうすればよいですか?上記のコメントに純粋なJavaScriptの

+1

jQueryにブラウザのenvにロードされる前にイベントハンドラをバインドするように要求する方法はないと思います。 –

+0

jQueryの使用を特に意味するものではありません。 jQueryを可能な限り削除し、JavaScriptを使用してjQueryを削除したいと思います。 –

答えて

1

ベースは、あなたが

var links = document.querySelector('a[href^="http"]'); 
links.forEach(function(link) { 
    button.addEventListener("click",function(e){ 
     // handling logic 
    }, false); 
}) 

コード高価になることができ、すべてのa要素にバインドイベントハンドラの上、バニラはJavaScriptを使用して、以下のものに上のjQueryコードを結合イベントを変換することができます。

文書にイベントハンドラを追加し、ターゲットにしたいリンクであるかどうかを確認し、内部でイベントをクリックキャッチするイベントバブルを使用して上記の

document.addEventListener("click", function(e) { 
    // check the target has an attribute of `a[href^="http"]` 
    if(e.target && e.target.nodeName == "a") { 

    } 
}); 

コード

イベントデリゲートを作成します。資料。

+1

私はそれが私が持っているものに類似していると信じて2番目の提案されたソリューションを好むし、コード実行後に追加されたリンクのためにも動作します。ありがとう! –

関連する問題