2017-01-12 11 views
-2

以下のJqueryは、構文が正しい(オンライン構文チェッカーでチェックされています)機能が実行されていても(純粋なJSでテストされていても)ブラウザで実行されません。それはなぜそうなのですか?Jqueryが処理されていません

この質問に対する回答がやや単純ですが、15分のグーグルで私が答えに到着できなかった場合は、事前にお詫びします。

JAVASCRIPT:

document.getElementById('overlay').addEventListener('click', function({ 
    closeLightBox() 
}); 

function closeLightBox() { 
    $("#overlay").fadeOut(1000); 
} 

function lightbox(x) { 

} 

HTML

<!DOCTYPE html> 
<html> 
    <head> 
     <title> Lightbox </title> 
     <link rel="stylesheet" type="text/css" href="lightboxcss.css"> 
    </head> 
    <body> 
     <div id = "overlay"> </div> 


     <img src="batman.jpg" alt="" href="javascript:void(0)" onclick="lightbox(1)" id="batman" style="height:100px;width:160px;margin-left:45%;margin-top:16%;"> 

     <br><br><br><br> 

     <p> RANDOM TEXT STUFF </p><br><br> 
     <p> 328ueekfuuirgh40t43h8hohro8ht </p> 


    <script src="lightboxjs.js"> </script> 
    </body> 
</html> 
+5

HTMLにjqueryへのリンクはありません。 jQuery関数はライブラリにリンクしていないものは何も行いません。 – Scott

+1

イベントリスナーを追加しようとすると明確ではありません.HTMLがレンダリングされる前であれば、動作しません。 –

+0

すでにjQueryを使用している場合は、イベントハンドラにも使用してください。 – empiric

答えて

1

私はjavascriptコードが.jsファイル "lightboxjs.js"にあると仮定します。どこにでもjQueryライブラリを含めましたか?

もしそうでない場合は、カスタムJavaScriptファイルを含める前にこの行<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>を追加してください。

+0

私の.jsファイルに言及するスクリプトタグが正しくなる前に、あなたが言及したスクリプトは.htmlファイルに入れられますか? – Nahmed39

+1

依存関係の順にjsファイルを注文する必要があります。したがって、jqueryに依存するコードを使用している場合は、最初にjqueryをロードしなければなりません。それ以外の場合は動作しません。 – Adrianopolis

+0

@ Nahmed39まさに! – Spri

1
$(document).ready(function(){ 
//page is ready 

    $("#overlay").on("click",function(){ 
    this.fadeOut(1000); 
    }); 
    }); 

DOMイマイチがロードされている場合は、イベントリスナーを追加することはできません。また、上のスクリプトを実行する前にjqueryを含めることを忘れないでください ...

+0

これは 'DOMがロードされる前に 'あるべきです。 – empiric

0

ここでjqueryライブラリを呼び出していますか? jqueryをlightboxjs.jsの直上にロードする必要があります。また、jquery構文を使用して#overlayクリックイベントをリスニングすることもできます。

関連する問題