javascript - 使 Leaflet 侧边栏 div 在标记单击时处于事件状态,反之亦然

标签 javascript jquery dictionary leaflet

单击标记时将 div 元素更改为事件状态的最佳方法是什么?

当您有数十或数百个标记时如何执行此操作?

例如,当您点击Leaflet map 上的标记时,如何使其相关的侧边栏元素处于事件状态?

我可以编写 sudo 代码,但我缺少一些内容。

markers on click
$(#sidebar div)
   make (related) li element active

基本上,我试图模仿 Yelp 或 Foursquare 等许多 map 目录网站的做法。单击侧边栏列表项,标记将变为事件状态,反之亦然。这使得用户可以在查看位置的同时读取有关标记的信息。

Mapbox 有一个很酷的(现已弃用的)Foursquare 示例。我浏览了代码,但几乎不明白它。也就是说,这个例子说明了要点。

Foursquare Mapbox example

当您将鼠标悬停在 yelp 中的列表项上时,标记会变黑。

Yelp example

最佳答案

这实际上取决于您如何构建一切,但假设您有 map 图钉以某种方式保留对侧边栏的引用,只需添加一个快速单击处理程序即可。我以前从未对传单做过任何事情,但看起来它们支持标记所需的所有事件:http://leafletjs.com/reference.html#marker

因此,当您构建每个标记时,只需存储其相应的菜单项,并绑定(bind)事件,如下所示!

marker.on('mouseover', function () {
    //Write code to adjust the icon
    marker.icon = someNewIcon;

    //Store a ref. to the menu item, and use that ref here to manage the view state
    currentActive.removeClass('active');
    $(this.target).addClass('active');
});

希望这对您有帮助!

关于javascript - 使 Leaflet 侧边栏 div 在标记单击时处于事件状态,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22256520/

相关文章:

javascript - 如何在 Google Apps 脚本中使用 Dictionary javascript 类?

javascript - 如何在nodejs中的另一个箭头函数中调用箭头函数

javascript - 如何在 ng-repeat 上获取两个 Controller 的结果

javascript - 我可以使用服务器端 Javascript 在 Razor 中编写 View 代码吗?

jQuery Mobile 无法通过 SSLVPN 工作

Python 字典 "plus-equal"行为

javascript - 处理弹出窗口关闭的正确方法

javascript - 使用 jQuery animate 和scrollTop() 时 iPad 快速触摸的问题

JQuery 动画到 "Height: 0px;"仍然显示

dictionary - 检测映射中的键是否存在结构