次のコードがあります (この場合は 2 つの画像の場合ですが、実際には、N 回複製される可能性があります。
<figure title="" class="DragBox" dragableBox="true" style="opacity: 1;" id="thumb_1">
<span class="pic" id='UAJ754'>
<span class="imagewrap"> </span>
<span class="overlay">
<a href="fulldata.php?UAJ754" class="popUpSimple" rel="thumb_1">Image Information</a>
</span>
<img src="/pics/UAJ754.jpg" alt="">
</span>
<figcaption class="AlbumFig_Caption">A picture caption.
</figcaption>
</figure>
<figure title="" class="DragBox" dragableBox="true" style="opacity: 1;" id="thumb_2">
<span class="pic" id='JB6732'>
<span class="imagewrap"> </span>
<span class="overlay">
<a href="fulldata.php?JB6732" class="popUpSimple" rel="thumb_2">Image Information</a>
</span>
<img src="/pics/JB6732.jpg" alt="">
</span>
<figcaption class="AlbumFig_Caption">A second picture caption.
</figcaption>
</figure>
現在、'pic' のクラスを持つスパンには jQuery の mousedown イベントが関連付けられているため、マウスがクリックされた画像に関係なく、pic タグがイベントをログに記録し、データを含むポップアップ ウィンドウを表示します。それはすべてうまくいきます。
しかし、マウスが押された特定の「写真」の ID タグを取得するか、ID を取得できるように IMG の src を取得する必要があります。これは、正しい情報を表示するためにポップアップ ウィンドウに渡す必要があるためです。右の写真のために。
次のJSコードがあります:
$(".pic").mousedown(function(e) {
var mouseX = e.pageX;
var mouseY = e.pageY;
if (e.which === 3) {
$('.infobox').css({'top':mouseY+'px','left':mouseX+'px'}).fadeIn();
var imgref = $(".pic").attr('id');
alert (imgref);
return false;
}else{
$('.info').fadeOut();
}
});
繰り返しますが、これは正常に機能しますが、クリックされた「pic」スパンに関係なく、最初の「pic」スパンの ID しか表示されません。現在の 'pic' スパンの ID フィールドを取得するにはどうすればよいですか? ユーザーがボタンを押したときにマウスが上にあったもの??