クリックしたDIVのIDを特定の関数に渡そうとしていますが、奇妙な結果に陥りました。 IDは、エラー状態が発生すると(ajax-loader.gif)関数に成功し、onclicが開始されたDIV内に自身を設定します。クリックした要素のIDをAJAXで渡すときのエラー
しかし、AJAXが完了していないレディ状態を返す理由はわかりません。 「clicked_id」をIDのハードコードされた名前に置き換えると、正しく動作します。ただし、エラーイベントが指定されたIDのinnerHTMLに設定されているため、ID名が関数に正しく設定されていることが証明されています。
私は困惑しています。何か案は?私はこれがnoob間違いだと確信していますが、私はそれを見つけられません。
私はスクリプトで新しいXMLHTTPRequestを開始しましたが、簡潔にするために残しました。そして、jQueryのクリックイベントのような簡単な方法があることはわかっていますが、私自身のために、なぜこれが壊れているのかを知りたいのです。
<div class='colour'><img src='media/recipe_save.jpg' id='showtime' onclick='javascript:getServerTime(this.id);'></div>
function getServerTime(clicked_id) {
var thePage = 'ajax.recipesave.php';
myRand = parseInt(Math.random()*999999999999999);
var theURL = thePage +"?rand="+myRand;
myReq.open("GET", theURL, true);
myReq.onreadystatechange = theHTTPResponse(clicked_id);
myReq.send(null);
}
function theHTTPResponse(clicked_id) {
alert(clicked_id);
if (myReq.readyState == 4) {
if(myReq.status == 200) {
var timeString = myReq.responseXML.getElementsByTagName("timestring")[0];
document.getElementById(clicked_id).innerHTML = timeString.childNodes[0].nodeValue;
}
} else {
document.getElementById(clicked_id).innerHTML = '<img src="media/ajax-loader.gif"/>';
}
}
素晴らしい!私はそれが何か初心者だと分かっていた。 jfriend00の背後にある理由を説明してくれてありがとう。 –