我正在尝试更新 data-coords
(第 11 行),但是当我这样做时代码运行但 data-coords
不更新。为什么?它对我来说看起来有效,我是否遗漏了什么?
$(document).on('click', '.next-prev-js', function (e) {
var item = e.target;
if($(item).is("img") && tagging){
var offset = $(item).offset();
var imgid = $(item).attr("data-image-id");
var obi = $("#blackout-image").offset();
x = (e.clientX - offset.left);
y = (e.clientY - offset.top);
addTag(e.clientX - obi.left - 55, e.clientY - 55);
saveCoords(x, y, imgid);
$(item).attr("data-coords", x+","+y);
tagging = false;
$(".tag-self").text("Tag yourself");
$("#blackout-image img").css({cursor: "pointer"});
$("#blackout-image .face").delay(3000).fadeOut("fast");
return false;
}
var action = $(item).attr("data-action");
nextPrevImage(action);
return false;
});
这是 HTML 部分(这是在 php echo 语句中):
<a class='thumb-photo' href=''>
<img class='thumb-img' data-coords='$x,$y' data-id='$id' data-image-id='$imid' data-file='$f' src='/user-data/images/image.php?id=$id&file=$f&height=240&width=240' width='240' height='240' />
</a>
演示
(在此过程中不要刷新页面)
如果您点击其中一张图片,它将在查看器中打开。
- 将鼠标悬停在左侧“Where is He”上,一个正方形将显示数据坐标的位置(来自缩略图)
- 接下来点击“标记自己”,然后点击图片中的位置。
- 按“esc”或点击透明区域关闭查看器
- 再次点击图片,将鼠标悬停在“Where is He”上坐标仍然是旧坐标,但点击新位置后应该会更新
最佳答案
你应该使用 data方法。
$(item).data({coords: x+","+y});
或
$(item).data("coords", x+","+y);
在 jsfiddle 中工作。
您可以通过以下方式查看您的数据属性:
console.log($(item).data());
关于javascript - data-* 在点击后不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14924538/