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

时间:2013-06-17 02:32:31

标签: javascript jquery class events

我正在开发一款游戏,其中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而不是类,这将是微不足道的,但为此我需要使用类并知道哪一个正在调用该事件。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你似乎已经这样做了。

在传递给.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.

});