微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用image-mapster更新Visual Studioasp.net核心mvc中的<area>标签?

如何解决如何使用image-mapster更新Visual Studioasp.net核心mvc中的<area>标签?

我已映射到一个视图中包含多个图像的图像。加载页面后,区域标记会按照我想要的方式工作,但是在更改时,我有一个地方,其中包含通过jquery更改的新信息的更新。当我更改并选择所需的标记时,它不会更改任何标记,相反,地图所做的是取消选择我通过jquery更改的标记。请遵循以下代码

控制器功能

public IActionResult MostrarMapa()
        {
            ViewData["Cidade"] = "Livramento de Nossa Senhora";
            return View();
        }

选择:

<select id="myselect" onchange="pintarpoly()">
        <option value=""></option>
        <option value="1">1</option>
        <option value="2">2</option>
    </select>

图像和区域地图:

<img src="https://gartic.com.br/imgs/mural/si/sinistrus/livre_1261907513.png" id="map" usemap="#image-map">

<map name="image-map">
    <area target="" alt="" id="1" class="green" title="" href="#" coords="158,91,159,167,240,91" shape="poly">
    <area target="" alt="" id="2" class="a" title="" href="#" coords="242,243,168,327,166,91" shape="poly">
    <area target="" alt="" id="3" class="red" title="" href="#" coords="158,158,244,239,246,170" shape="poly">
    <area target="" alt="" id="4" class="b" title="" href="#" coords="241,245,241,325,328,244" shape="poly">
</map>

生成地图:

var map = $('#map');
    map.mapster({
        mapKey: 'class',stroke: true,strokeWidth: 0.5,strokeColor: '000000',areas: [{
            key: 'red',staticState: true,render_select: {
                fillOpacity: 0.7,fillColor: 'ff0000'
            }
        },{
            key: 'green',fillColor: '00ff00'
            }
        },{
            key: 'blue',fillColor: '0000ff'
            }
        },{
            key: 'orange',fillColor: 'ffa500'
            }
        }
        ],isSelectable: false
    })
        .mapster('snapshot')
        .mapster('rebind',{
            mapKey: 'class',isSelectable: false
        },true);

更改地图的功能

function pintarpoly() {

        if ($('#myselect').val() == '1') {
            $('#1').attr('class','orange');
            $('#2').attr('class','blue');
            $('#3').attr('class','green');
            $('#4').attr('class','red');
            map.mapster('rebind');
}

我已经尝试将图像和地图定义为局部视图,并在每次更改时进行更新。我还尝试更新图像和地图所属的div。但是没有一个很好。

PS:正确调用了包含jquery和image-mapster的脚本。数据目前是静态的,仅供测试。

解决方法

这是一个工作示例,如下所示:

查看:

<select id="myselect" onchange="pintarPoly()">
    <option value=""></option>
    <option value="1">1</option>
    <option value="2">2</option>
</select>

<img src="https://gartic.com.br/imgs/mural/si/sinistrus/livre_1261907513.png" id="map" usemap="#image-map">

<map name="image-map">
    <area target="" alt="" id="1" class="green" title="" href="#" coords="158,91,159,167,240,91" shape="poly">
    <area target="" alt="" id="2" class="a" title="" href="#" coords="242,243,168,327,166,91" shape="poly">
    <area target="" alt="" id="3" class="red" title="" href="#" coords="158,158,244,239,246,170" shape="poly">
    <area target="" alt="" id="4" class="b" title="" href="#" coords="241,245,241,325,328,244" shape="poly">
</map>

脚本:

@section Scripts
{
    <script src="https://cdn.jsdelivr.net/npm/jquery-imagemapster@1.2.10/dist/jquery.imagemapster.min.js"></script>
    <script>
        var map = $('#map');
        var options = {
            mapKey: 'class',stroke: true,strokeWidth: 0.5,strokeColor: '000000',areas: [{
                key: 'red',staticState: true,render_select: {
                    fillOpacity: 0.7,fillColor: 'ff0000'
                }
            },{
                key: 'green',fillColor: '00ff00'
                }
            },{
                key: 'blue',fillColor: '0000ff'
                }
            },{
                key: 'orange',fillColor: 'ffa500'
                }
            }
            ],isSelectable: false
        };

        map.mapster(options); //change this...

        function pintarPoly() {

            if ($('#myselect').val() == '1') {
                $('#1').attr('class','orange');
                $('#2').attr('class','blue');
                $('#3').attr('class','green');
                $('#4').attr('class','red');

                map.mapster('rebind',options);  //change this...
                    
            }
        }
    </script>
}

结果:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。