イベント ターゲット要素から属性を取得するのに問題があります。
php を使用して mysql データベースにアクセスしています。クエリから、いくつかの画像ファイル名とそれぞれの ID を取り出します。次に、これらの画像を次の行でテーブルに表示します。
print '<td><img id="img_' . $row['paint_id'] . '" class="thumb_target" src="img/paint/thumb/' . $row['paint_thumb'] .'"></td>';
ご覧のとおり、この行は各画像に id 'img_xx' を与えます。ここで、xx は sql データベース内の画像の数値 ID です。また、各画像にクラス「thumb_target」を与えます。ドキュメントの準備ができたら、thumb_target 要素の .click イベントを設定します。これにより、img_xx id をデータとして渡す AJAX 呼び出しが行われます。私はこれをクロムで動作させました
data: 'imgID=' + event.target.id
しかし、数時間後、Firefox で何か他のことを確認することにしましたが、すべてのブラウザーで機能しないことがわかりました。jQuery のメソッドを使用する:
var id = $(this).attr('id');
id を undefined 以外にすることはできません。私が考えている要素とは異なる要素をターゲットにしていますか?
関連するJavaScriptは次のとおりです。
function runClick() {
var id = $(this).attr('id');
alert(id);
$.ajax({
url: 'overlay.php',
//~ data: 'imgID=' + event.target.id,
//~ data: ({ imgID: id }),
data: 'imgID=' + id,
dataType: 'json',
success: function(data, textStatus, jqXHR) {
processJSON(data);
},
error: function(jqXHR, textStatus, errorThrown){
alert("Failed to perform AJAX call! textStatus: (" + textStatus +
") and errorThrown: (" + errorThrown + ")");
}
});
}
$(document).ready( function() {
$('.thumb_target').click( function() {
runClick();
});
$('#overlay').hide();
});
テスト ページへのリンクは次のとおりです: http://www.carlthomasedwards.com/painting2.php