我在从事件目标元素中提取属性时遇到了一些问题。
我正在使用 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 事件。这会进行 AJAX 调用,该调用应将 img_xx id 作为数据传递。我让它在 chrome 中使用
data: 'imgID=' + event.target.id
但是,几个小时后,我决定在 Firefox 中检查其他内容,发现它不适用于所有浏览器。使用 jQuery 的方法:
var id = $(this).attr('id');
我不能让 id 成为未定义的任何东西。我是否针对与我认为的元素不同的元素?
这是相关的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.carltomasedwards.com/painting2.php