Jquery获取触发事件的类的特定实例

Jquery get specific *instance of the class* that triggered an event

本文关键字:实例 事件 获取 Jquery      更新时间:2023-09-26

我正在制作一款游戏,其中JSON数据被转换成一堆绘制在主地图顶部的类。每个图标都是一个20x20像素的小框。将光标移到每个方框上意味着改变另一个div的html,以传递每个类值中"隐藏"的信息。

我的代码是这样的:
$('.City_Palace').mousemove(function(e) {
            e.stopPropagation();
            var x = Math.floor((e.pageX - this.offsetLeft +  $("#scrollWindow").scrollLeft()) / tileSize);
            var y = Math.floor((e.pageY - this.offsetTop + $("#scrollWindow").scrollTop())/tileSize);
            var text = $('#WorldMapMessage').html();
            alert(e.target.className); 
            $('#WorldMapMessage').html(x +', '+ y + " " + $(this).val());
           // alert($(this).val());
        });

此代码当前显示一个警告框,其中包含导致事件的类名。但是,我需要知道的是. city_palace类的哪个实例触发了事件,这样我才能显示适当的文本。如果我使用id而不是类,这将是微不足道的,但为此,我需要使用类并知道哪一个正在调用事件。

谢谢你的帮助!

您似乎已经在这样做了。

在传递给.mousemove()的函数中,您可以访问this,它指的是正在悬停的元素的特定实例。您可以使用它从该元素的特定实例中获取您可能需要的任何其他内容。例如:

$('.City_Palace').mousemove(function(e) {
  // $(this) is the specific instance of .City_Palace that's being hovered on.
  alert($(this).attr("class")); // Alert the class name.
});