私の質問を実際のコードで説明する方が簡単かもしれません。
<script type='text/javascript' src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type='text/javascript'>
var username_array = [];
var text_array = [];
var virtual_name;
$(document).ready(function(){
document.body.style.backgroundColor= "rgb(0, 188, 237)";
var name = prompt("Please enter your name.");
if(name!=null){
x = "Hello " + name + "!";
a = document.createElement("p");
a.innerHTML=x;
document.body.appendChild(a);
b = document.createElement("p");
b.addEventListener('click',question,false);
b.style.cursor='pointer';
b.style.textDecoration="underline";
b.innerHTML="Check out what you look like on Twitter."
document.body.appendChild(b);
}
function question () {
$.ajax({
url: 'http://search.twitter.com/search.json?q='+name+'&callback=?&rpp=5',
type: 'GET',
dataType: 'json',
success: function (data){
for(i=0;i<data.results.length;i++) {
pic = data.results[i].profile_image_url;
var img = document.createElement("img");
img.setAttribute("id", "profile"+i);
img.src=pic;
img.width=50;
img.height=50;
img.addEventListener('click', realname, false);
img.style.cursor='pointer';
document.body.appendChild(img);
username = data.results[i].from_user_name;
username_array.push(username);
text = data.results[i].text;
text_array.push(text);
sequence = i;
}
check_array();
}
})
c = document.createElement("p");
c.innerHTML="Which one is you?"
document.body.appendChild(c);
}
});
function check_array() {
}
var sequence;
function realname() {
i=Math.floor(Math.random()*5);
d = document.createElement("p");
d.innerHTML="Here is your virtual name: " + username_array[i];
document.body.appendChild(d);
e = document.createElement("p");
e.innerHTML= username_array[i] +" actually has something to say to you:";
e.style.textDecoration="underline";
e.addEventListener('click',say,false);
e.style.cursor="pointer";
document.body.appendChild(e);
sequence = i;
}
</script>
私が持っている問題はこの行です:
function realname() {
i=Math.floor(Math.random()*5);
...}
と
img.addEventListener('click', realname, false);
理想的には、ユーザーに img をクリックしてもらい、そのインデックス値を取得して realname 関数に渡すことができるので、data.result からプロファイル画像に一致する正しいユーザー名を取得できます。現在、関数 realname 内で生成するランダムな「i」は、何かを表示するための単なる偽物です。
私はそれを十分に明確に説明したかどうか確信が持てません。どなたでもご利用いただけますので、よろしくお願いいたします。