2016-06-12 12 views
0

私はシンプルなHTMLページとJavaScriptスクリプトファイルを持っています。私は、ユーザーがテーブル内の画像をクリックすると、いくつかのJavaScriptコードをトリガーしたいと思う。 jquery .click()関数を追加し、document.readyからも呼び出すが、ページを読み込むとイメージをクリックできない。 F12を開いて手動でjquery .click()を書くと、有効になり、イベントリスナーが登録され、画像をクリックしてコードをトリガーすることができます。しかし、IntelliJからページをロードするだけではありません。ここでjquery .click()がウェブページを開始するときにイベントリスナーを登録していません

はHTMLコードです:

<html lang="en"> 
<head> 
    <h1>My page</h1> 
    <meta charset="UTF-8"> 
    <title>Title</title> 
    <link rel="stylesheet" type="text/css" href="mainpage.css"> 
    <script type="text/javascript" src="http_code.jquery.com_jquery-2.0.0.js"> </script> 
    <script type="text/javascript" src="profile.js" ></script> 
</head> 
<body> 
<p>This is my main page</p> 
<table> 
    <tr> 
     <td> 
      <div id="image1"> 
       <img src="images/fluffcat.jpg" align="left"/> 
      </div> 
     </td> 
     <td><img src="images/midsommarcat.jpg" align="center" id="image2"/></td> 
     <td><img src="images/tortillacat.jpg" align="right" id="image3"/></td> 
    </tr> 
    <tr> 
     <td>Cat 1</td> 
     <td>Cat 2</td> 
     <td>Cat 3</td> 
    </tr> 
</table> 
</body> 
</html> 

、ここでは、JavaScriptファイルです。

/** 
* Created by jlg on 2016-06-11. 
*/ 
function sayHello() { 
    console.log("Hello World") 
} 

function doClick() { 
    alert("something happened!"); 
    window.open("Profile", "Profile", "", false); 
} 

function openPopup() { 
    console.log("I got here at least"); 
    $("#image1").click(doClick); 
} 

function documentReadyFunctions() { 
    sayHello(); 
    openPopup(); 
} 

$(document).ready(documentReadyFunctions()); 

私はここで何をしないのですか?私が行方不明になっているjavascriptファイルに何らかの並べ替えがありますか? "console.log("少なくとも私はここにいる "); Hello Worldと同様にコンソールにも表示されます。次のコードで

答えて

4

$(document).ready(documentReadyFunctions()); 

documentReadyFunctions()は直ちに関数を呼び出し、readyにコールバックとして返された値を割り当てます。

script<head>にロードされているため、この関数が実行される時点までにDOMで要素を使用できません。

関数の呼び出しを取り除きます。()

$(document).ready(documentReadyFunctions); 
//    ^^^^^^^^^^^^^^^^^^^^^^ // Don't call it, pass the function reference. 

これは参照としての機能を通過し、DOMの準備ができたときに関数が呼び出されます。

関連する問題