Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery向量映射中的切换函数_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery向量映射中的切换函数

Javascript jQuery向量映射中的切换函数,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如何在jQuery向量映射中实现切换功能 我的要求是:如果用户选择了任何区域,它应该用颜色高亮显示。 如果用户单击同一区域,它将变为旧状态(无颜色或默认状态) 我可以使用JS和jQuery实现这一点,或者我需要任何其他插件帮助 任何想法、建议和指导都将受到高度赞赏。谢谢 示例代码: jQuery(文档).ready(函数(){ jQuery(“#vmap”).vectorMap({ 地图:“美国”, enableZoom:true, showTooltip:true, //选定区域:“MO”

如何在jQuery向量映射中实现切换功能

我的要求是:如果用户选择了任何区域,它应该用颜色高亮显示。 如果用户单击同一区域,它将变为旧状态(无颜色或默认状态)

我可以使用JS和jQuery实现这一点,或者我需要任何其他插件帮助

任何想法、建议和指导都将受到高度赞赏。谢谢

示例代码:

jQuery(文档).ready(函数(){
jQuery(“#vmap”).vectorMap({
地图:“美国”,
enableZoom:true,
showTooltip:true,
//选定区域:“MO”
onRegionClick:函数(事件、代码、区域)
{
/*var消息='您选择了''
+区域
+'其中包含代码:'
+code.toUpperCase()
//警报(信息);
$('#选定位置').html(消息)*/
var ul=$(“#所选位置”);
var list=ul.children('li');
var-isInList=false;
对于(变量i=0;i').html(region).appendTo(ul);
$('ul').children('li').on('dblclick',function())
{
//警报(“选定的列表项将从列表中删除…”)
$(this.remove();
});
}
});

创建一个CSS类以突出显示,然后使用JS或jQuery切换

CSS突出显示类:

.highlighted {
    -webkit-box-shadow: 0 0 8px #FFD700;
    -moz-box-shadow: 0 0 8px #FFD700;
    box-shadow: 0 0 8px #FFD700;
    cursor:pointer;
}
jQuery切换

$(document).ready(function(){
    $('#text').click(function(){
        $(this).toggleClass('highlighted');
    });
});

来自Codecademy的示例:

创建一个CSS类以突出显示,然后使用JS或jQuery切换

CSS突出显示类:

.highlighted {
    -webkit-box-shadow: 0 0 8px #FFD700;
    -moz-box-shadow: 0 0 8px #FFD700;
    box-shadow: 0 0 8px #FFD700;
    cursor:pointer;
}
jQuery切换

$(document).ready(function(){
    $('#text').click(function(){
        $(this).toggleClass('highlighted');
    });
});

示例摘自Codecademy:

您可以通过将属性
颜色
指定给选定区域来完成此操作。例如,要使california蓝色,您可以编写如下内容

    var highlight = {colors: {ca : '#0000ff'}}
要从时钟回调设置颜色属性,可以调用

    onRegionClick: function(element, code, region) {
        $('#vmap').vectorMap('set', 'colors', highlight);
    }
要切换颜色,您可以添加一个if开关,该开关只检查元素是否设置了突出显示颜色。您还可以使用该开关在列表中添加/删除区域

    $(document).ready(function() {
        highlight = {};
        $('#vmap').vectorMap({
            map: 'usa_en',
            enableZoom: true,
            showTooltip: true,
            color: '#f4f3f0',
            onRegionClick: function(element, code, region) {
                if(highlight[code]!=='#0000ff'){
                    highlight[code]='#0000ff';
                    $('<li id=\"li_'+code+'\"></li>').html(region).appendTo($('#location-selected'));
                } else {
                    highlight[code]='#f4f3f0';
                    $('#li_'+code).remove();
                }
                $('#vmap').vectorMap('set', 'colors', highlight);
            },
             onRegionOut: function(element, code, region){
                 $('#vmap').vectorMap('set', 'colors', highlight);
             },
        });
    });
$(文档).ready(函数(){
突出显示={};
$('#vmap').vectorMap({
地图:“美国”,
enableZoom:true,
showTooltip:true,
颜色:'#f4f3f0',
onRegionClick:函数(元素、代码、区域){
如果(突出显示[代码]!='#0000ff'){
突出显示[代码]='#0000ff';
$('li id=\'li\'+code+'\'>').html(region.appendTo($('location selected'));
}否则{
突出显示[代码]='#f4f3f0';
$('#li'+代码).remove();
}
$(#vmap').vectoramap('set','colors',highlight);
},
onRegionOut:函数(元素、代码、区域){
$(#vmap').vectoramap('set','colors',highlight);
},
});
});
为了快速说明,我还将其放在JSFIDLE上:


要使其正常工作,您还需要在
onRegionOut

中设置颜色,您可以通过将属性
colors
指定给所选区域来实现这一点。例如,要使california blue变为蓝色,您可以编写如下内容

    var highlight = {colors: {ca : '#0000ff'}}
要从时钟回调设置颜色属性,可以调用

    onRegionClick: function(element, code, region) {
        $('#vmap').vectorMap('set', 'colors', highlight);
    }
要切换颜色,您可以添加一个if开关,该开关只检查元素是否设置了突出显示颜色。您还可以使用该开关在列表中添加/删除区域

    $(document).ready(function() {
        highlight = {};
        $('#vmap').vectorMap({
            map: 'usa_en',
            enableZoom: true,
            showTooltip: true,
            color: '#f4f3f0',
            onRegionClick: function(element, code, region) {
                if(highlight[code]!=='#0000ff'){
                    highlight[code]='#0000ff';
                    $('<li id=\"li_'+code+'\"></li>').html(region).appendTo($('#location-selected'));
                } else {
                    highlight[code]='#f4f3f0';
                    $('#li_'+code).remove();
                }
                $('#vmap').vectorMap('set', 'colors', highlight);
            },
             onRegionOut: function(element, code, region){
                 $('#vmap').vectorMap('set', 'colors', highlight);
             },
        });
    });
$(文档).ready(函数(){
突出显示={};
$('#vmap').vectorMap({
地图:“美国”,
enableZoom:true,
showTooltip:true,
颜色:'#f4f3f0',
onRegionClick:函数(元素、代码、区域){
如果(突出显示[代码]!='#0000ff'){
突出显示[代码]='#0000ff';
$('li id=\'li\'+code+'\'>').html(region.appendTo($('location selected'));
}否则{
突出显示[代码]='#f4f3f0';
$('#li'+代码).remove();
}
$(#vmap').vectoramap('set','colors',highlight);
},
onRegionOut:函数(元素、代码、区域){
$(#vmap').vectoramap('set','colors',highlight);
},
});
});
为了快速说明,我还将其放在JSFIDLE上:


为了让它正常工作,你需要在
onRegionOut

中设置颜色,谢谢你的回答。我在这个例子中得到了它。但是我不知道我在单击什么元素,因为它是jQuery向量映射。所以我有点困惑如何继续…你能给我们发一些示例代码吗?更好的是,放在JSFiddle中。人们会更愿意g如果你让他们更容易,他们会帮助你。:)是的,我放了一些示例代码..你可以得到我想要的…谢谢你的回复。我得到了这个示例。但是我不知道我点击的是什么元素,因为它的jQuery向量映射..所以我有点困惑如何继续…你能给我们发一些示例代码吗?更好,放在JSFIDLE中。人们会更愿意帮助你u如果你让他们更容易的话。:)是的,我放了一些示例代码。。你可以得到我想要的…嗨,Martin Turjak,谢谢你的回答,功能部分工作正常,但颜色高亮显示没有发生。酷,我很高兴它对你有效=)然后你可以通过在下面勾选来接受我的答案投票箭头…我这么说是因为你似乎是新来的