javascript - 在 Google map 上使用 jQuery 更改鼠标悬停时标记的 labelClass

标签 javascript jquery google-maps

我已经添加了markerwithlabel.js 文件,并且可以使用以下代码在我的谷歌地图上成功显示带有标签的标记:

markerArray[i] = new MarkerWithLabel({
 position: myLatLng,
 map: map,
 icon: image,
                 labelAnchor: new google.maps.Point(25, 30),
                 labelClass: "marker_labels", // the CSS class for the label
                 labelStyle: {opacity: 0.75},
                 labelContent: format_num(property[6]),
 }
);

我想更改标签的类,以便当我将鼠标悬停在页面上与该标记/标签对应的另一个元素上时突出显示它。我尝试过使用 jQuery,但就是无法让它工作:

$(".sidelisting").hover(
             function () {
                 $(markerArray[this.id].labelClass).addClass("hovered");
             },
             function () {
                 $(markerArray[this.id].labelClass).removeClass("hovered");
             }
     );

上面的代码在控制台中没有显示任何 JavaScript 错误,但鼠标悬停时没有任何反应,将其从 labelClass 更改为 label 也不起作用,任何想法?

最佳答案

首先,您在悬停功能中使用 this.id 。为此,具有 sidelisting 类的元素必须具有与markerArray 的索引相匹配的 id。

其次: 如果 markerArray[this.id].labelClass 不是未定义的,它可能是“marker_labels”而不是 DOMNode。这使得 $(markerArray[this.id].labelClass) 创建一个空的 jquery 对象或引用 ID 为“marker_labels”的元素的 jquery 对象。 您必须在标记上调用 set 才能更改任何属性:

$(".sidelisting").hover(
         function () {
             markerArray[this.id].set("labelClass", "marker_labels hovered")
         },
         function () {
             markerArray[this.id].set("labelClass", "marker_labels")
         }
 );

关于javascript - 在 Google map 上使用 jQuery 更改鼠标悬停时标记的 labelClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16670678/

相关文章:

javascript - 在 Safari 扩展中使用 jQuery

javascript - 在 ThreeJS 中更新纹理贴图

javascript - 如何通过模态 "pop up"窗口将值插入文本字段?

android - getSupportFragmentManager().findFragmentById 为 android fragment 中的谷歌地图返回 null?

javascript - Internet Explorer 7 iframe,使高度为 100%

php - 用jQuery替换OnPage Text,然后提示文件下载

javascript - 同时在 div 和 mouseout 上使用 hover

javascript - 传递局部变量问题

javascript - 显示方向的每一步地理编码

javascript - Gmap3 多个标记加载缓慢。怎么解决?