Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Google chrome 当浏览器未处于焦点时,在Chrome中第一次单击时,jVectorMap onRegionClick不会触发_Google Chrome_Onclick_Focus_Jvectormap - Fatal编程技术网

Google chrome 当浏览器未处于焦点时,在Chrome中第一次单击时,jVectorMap onRegionClick不会触发

Google chrome 当浏览器未处于焦点时,在Chrome中第一次单击时,jVectorMap onRegionClick不会触发,google-chrome,onclick,focus,jvectormap,Google Chrome,Onclick,Focus,Jvectormap,标题几乎说明了这一切,因为这个bug只发生在Chrome(最新版本)中 当使用Chrome并且当前没有焦点时,当使用两个监视器,然后单击Chrome页面上加载的jVectorMap组件的某个区域时,单击不会触发,只有当浏览器获得焦点时,在这种情况下,通过第一次单击,第二次单击区域才会触发onRegionClick事件 是否有人知道这是一个已知的Chrome bug,还是由jVectorMap组件引起的问题 如果是这样,是否有解决方案 *编辑:您会注意到组件的onRegionOver事件即使在Ch

标题几乎说明了这一切,因为这个bug只发生在Chrome(最新版本)中

当使用Chrome并且当前没有焦点时,当使用两个监视器,然后单击Chrome页面上加载的jVectorMap组件的某个区域时,单击不会触发,只有当浏览器获得焦点时,在这种情况下,通过第一次单击,第二次单击区域才会触发onRegionClick事件

是否有人知道这是一个已知的Chrome bug,还是由jVectorMap组件引起的问题

如果是这样,是否有解决方案

*编辑:您会注意到组件的onRegionOver事件即使在Chrome没有焦点的情况下也能工作

下面是一个正在运行的JSF示例-


我正在发布jVectorMap的初始设置,但是额外的代码可以在JSFIDLE中看到

    $map = $('.map');
    var map = new jvm.WorldMap({
        map: 'world_mill_en',
        container: $map,
        normalizeFunction: 'polynomial',
        zoomButtons: false,
        zoomOnScroll: false,
        hoverOpacity: 1,
        hoverColor: false,
        backgroundColor: '#fff',
        regionStyle: {
            initial: {
                fill: '#cdcccc',
                    "fill-opacity": 1,
                stroke: 'white',
                    "stroke-width": 0,
                    "stroke-opacity": 1
            },
            hover: {
                "fill-opacity": 1
            },
            selected: {
                fill: '#6eab24'
            }
        },
        series: {
            regions: [{
                attribute: 'fill'
            }]
        },
        regionsSelectable: true,
        regionsSelectableOne: true,
        onRegionLabelShow: function (event, label, code) {
            code = code.toLowerCase();
            var content = regionCheck(code, "region");
            if (content) {
                label.css('left', -200);
                $("path", $(this)).css("cursor", "pointer");
            } else {
                event.preventDefault();
                label.text("");
                $("path", $(this)).css("cursor", "default");
            }
        },
        onRegionOver: function (event, code) {
            map.clearSelectedRegions();
            code = code.toLowerCase();
            var content = regionCheck(code);
            if (content) {
                regionCode = code;
                map.setSelectedRegions([code.toUpperCase()]);
            }
        },
        onRegionOut: function (event, code) {
            map.clearSelectedRegions();
            code = code.toLowerCase();
            var content = regionCheck(code);
            if (content) {
                map.setSelectedRegions([code.toUpperCase()]);
            } else {
                return false;
            }
            regionCode = '';
        },
        onRegionClick: function (event, code) {
            alert("Country clicked");
        }
    });
    map.series.regions[0].setValues(colors);

我们可以使用类似于:

$map.on('click', function(e){
  if (~e.target.className.baseVal.indexOf('jvectormap-region')) {
    ..
  }
});

我试试看,谢谢。我在这里再次发布我的发现。你的建议奏效了!不幸的是,尽管没有其他答案可以投反对票,但我没有分数可以投你一票这就是我最终要做的,regionCheck、regionClick和closeMapPopup是我创建的独立函数,用于获得所需的结果<代码>$map.on('click',函数(e){if(~e.target.className.baseVal.indexOf('jvectormap-region')){code=$(e.target.attr(“数据代码”).toLowerCase();var content=regionCheck(code,“region”);if(content){regionClick(code,content);}else{closemapopup();return false;})感谢您让我研究tilde(~)操作符。为了避免在表达式中使用其他比较运算符,这是一个很好的用途(可能是为数不多的用途之一)。