Javascript 如何在使用单张绘制多边形时更改第一个顶点的颜色?

Javascript 如何在使用单张绘制多边形时更改第一个顶点的颜色?,javascript,maps,leaflet,leaflet.draw,Javascript,Maps,Leaflet,Leaflet.draw,我使用的是传单和传单.Draw,我让用户从我的代码中绘制多边形(不使用传单绘制控件) 当用户绘制多边形时,我需要更改其第一个顶点的颜色,例如:绿色,以便用户知道他需要单击第一个点以关闭多边形并完成绘制 使用传单绘制多边形时,如何更改第一个顶点的颜色? 下图用于详细说明,这意味着它是由绘画软件修复的 还有,这是我的密码 当我正在用传单进行黑客攻击时。在绘制和创建多边形的过程中,我想出了以下代码: map.on('draw:drawvertex', function (e)

我使用的是传单和传单.Draw,我让用户从我的代码中绘制多边形(不使用传单绘制控件)

当用户绘制多边形时,我需要更改其第一个顶点的颜色,例如:绿色,以便用户知道他需要单击第一个点以关闭多边形并完成绘制

使用传单绘制多边形时,如何更改第一个顶点的颜色?

下图用于详细说明,这意味着它是由绘画软件修复的

还有,这是我的密码


当我正在用传单进行黑客攻击时。在绘制和创建多边形的过程中,我想出了以下代码:

    map.on('draw:drawvertex',
        function (e) {
            $(".leaflet-marker-icon.leaflet-div-icon.leaflet-editing-icon.leaflet-touch-icon.leaflet-zoom-animated.leaflet-interactive:first").css({ 'background-color': 'green' });
        });
因此,有一个监听器,您可以将其插入代码中,
draw:drawvertex
,这意味着每当创建顶点时,我都需要做一些事情


然后,使用jQuery从这个长选择器中选择第一个元素,并将其背景色设置为绿色或任何其他颜色。

这是一种仅使用CSS的方法:

#root
    > main
    > div
    > div.col-sm-8.m-auto.p-0.flex-column.float-right
    > div.leaflet-container.leaflet-touch.leaflet-fade-anim.leaflet-grab.leaflet-touch-drag.leaflet-touch-zoom
    > div.leaflet-pane.leaflet-map-pane
    > div.leaflet-pane.leaflet-marker-pane
    > div:nth-child(2) {
    background: green;
}
对我来说,是这样工作的(课程有点不同。传单1.3.1和绘图0.4.3)


为什么不使用CSS,而不使用监听器或jQuery呢?在我的项目中,除了jQuery之外,CSS选择器没有应用!!我会怀疑,因为元素本身还没有被创造出来,这是有效的:#root>main>div>div.col-sm-8.m-auto.p-0.flex-column.float-right>div.传单容器.传单触摸.传单淡入淡出动画.传单抓取.传单触摸拖动.传单触摸放大>div.传单窗格.传单地图窗格>div.传单窗格.mobile-marker-pane>div:n子(2){背景:绿色;}
#root
    > main
    > div
    > div.col-sm-8.m-auto.p-0.flex-column.float-right
    > div.leaflet-container.leaflet-touch.leaflet-fade-anim.leaflet-grab.leaflet-touch-drag.leaflet-touch-zoom
    > div.leaflet-pane.leaflet-map-pane
    > div.leaflet-pane.leaflet-marker-pane
    > div:nth-child(2) {
    background: green;
}
        map.on('draw:drawvertex', function (e) {
            $(".leaflet-marker-icon.leaflet-div-icon.leaflet-editing-icon.leaflet-zoom-animated.leaflet-interactive:first").css({ 'background-color': 'green' });
        });