0

グループから 1 つの div をランダムに選択し、選択したものだけにクリック イベントを割り当てようとしています。以下は、これまでに書いたコードです。

<div id="div1"> </div>
<div id="div2"> </div>
<div id="div3"> </div>
<div id="div4"> </div>

<script>

var div1 = document.getElementById("div1");
var div2 = document.getElementById("div2");
var div3 = document.getElementById("div3");
var div4 = document.getElementById("div4");



var randomnumber = Math.floor(Math.random() * (4 - 1 + 1)) + 1;

var bomb = "div" + randomnumber;


alert(bomb);

bomb.onclick = function() { alert("You clicked me...BOOM!")}; // does not work


</script>
4

2 に答える 2

2

onclick要素ではなく、文字列爆弾のプロパティを設定しています。

使用する

document.getElementById(bomb).onclick = function() { alert("You clicked me...BOOM!")};

既存のクリック リスナーを置き換えたくない場合は、addEventListenerを使用することもできます。

document.getElementById(bomb).addEventListener(function() {
   alert("You clicked me...BOOM!")
});
于 2012-10-28T14:28:49.813 に答える
0

それが実際のスクリプトである場合は、次のことを試してください。

var bomb = window['div' + randomnumber].onclick = function(){alert('You clicked me... BOOM!');};

これが実際のスクリプトでない場合は、現在のコンテキストを参照するために、に置き換えwindow[てください。this[

もちろん、@dystroyのアプローチも問題なく機能します。文字列を使用して変数を参照する方法を示すために、これを追加しました

于 2012-10-28T14:33:43.697 に答える