私はUdacityコースのプロジェクトで「Cat Clicker」を作成しています。基本的には、私たちは5枚の写真を撮っています(私は現在4枚あります)が、それぞれの写真にはクリック画像が表示されます。私はループを1つ使用する方法があることを知っていますが、その方法はわかりません。私はそれぞれの画像にaddeventlistener
を使用しようとしていましたが、ページ上のどこにあっても(クリックしても)毎回カウントしています...誰かが間違っているか間違っているのか分かりますか?image click counterイベントリスナーの問題
var sassy = document.createElement("img");
sassy.src = 'images/cat.jpg';
sassy.height = "500";
sassy.width = "640";
sassy.alt = "Sassy Cat";
document.getElementById("catimage").appendChild(sassy);
var addUp = (function() {
var count = 0;
return function() {
var sassy = document.getElementById("catimage");
if (sassy) sassy.innerHTML = "Picture Clicks: " + ++count;
}
}());
document.addEventListener("click", addUp, false);
var grumpy = document.createElement("img");
grumpy.src = 'images/grumpy-cat.jpg';
grumpy.height = "500";
grumpy.width = "640";
grumpy.alt = "Grumpy Cat";
document.getElementById("grumpyimage").appendChild(grumpy);
var cuddlecats = document.createElement("img");
cuddlecats.src = 'images/cuddles.jpg';
cuddlecats.height = "500";
cuddlecats.width = "640";
cuddlecats.alt = "Cuddling Cats";
document.getElementById("cuddlingcats").appendChild(cuddlecats);
var sketchy = document.createElement("img");
sketchy.src = 'images/sketchycat.jpg';
sketchy.height = "500";
sketchy.width = "640";
sketchy.alt = "Sketchy Cat";
sketchy.co
document.getElementById("sketchycat").appendChild(sketchy);
<div id="catimage">
<figcaption>Sassy Cat</figcaption>
<h3 id="sassycount">Picture Clicks: 0</h3>
</div>
<div id="grumpyimage">
<figcaption>Grumpy Cat</figcaption>
<h3 id="grumpycount">Picture Clicks: 0</h3>
</div>
<div id="cuddlingcats">
<figcaption>Cuddling Cats</figcaption>
<h3 id="cuddlecount">Picture Clicks: 0</h3>
</div>
<div id="sketchycat">
<figcaption>Sketchy Cat</figcaption>
<h3 id="sketchcount">Picture Clicks: 0</h3>
</div>
私は代わりに何をお勧めしますか? (愚かな質問には申し訳ありませんが、それでもかなり新しいです) –
クリックリスナーはドキュメントに追加されます。したがって、ドキュメントのどこにでもクリックするたびに実行されます。あなたはどういうわけか、クリックされた要素が猫の画像であることを確認しなければなりません。例えば。クリックした要素( 'e.target')にそのクラスがある場合、画像に特定のクラスを与え、ハンドラチェックでそのクラスを与えることができます。 – Teemu