JQVMap - 悬停时调用Ajax,标签问题

时间:2015-12-22 15:41:21

标签: javascript jquery ajax jqvmap

我正在使用JQVMap来显示国家。

如果国家/地区悬停,则通过ajax显示计数是正确的。

问题是,当我快速地悬停在许多国家时,它会附加到我停止的一个标签中,所以基本上它会堆叠"标签。

示例:

我立刻徘徊了太多的国家。我在意大利停留了所有的学校计数和#34;会在那里。

这是我的JS代码

If Button1.BackColor <> Color.Red Then
    'execute this if the backcolour isnt red
End If

1 个答案:

答案 0 :(得分:3)

问题是因为所有的AJAX请求仍然被触发,一旦完成,所有结果都会被添加到标签中。您可以在abort()返回的jqXHR上致电$.getJSON取消之前的请求。试试这个:

var lastRequest; // variable to store the previous request

jQuery('#vmap').vectorMap({
    map: 'world_en',
    backgroundColor: null,
    color: '#ffffff',
    hoverOpacity: 0.7,
    selectedColor: '#666666',
    enableZoom: true,
    showTooltip: true,
    values: sample_data,
    scaleColors: ['#C8EEFF', '#006491'],
    normalizeFunction: 'polynomial', 
    onLabelShow: function (event, label, code) {
        if (sample_data[code] > 0) {
            lastRequest && lastRequest.abort(); // abort the previous request

            lastRequest = $.getJSON('/ajax/admin/ajaxcallpage', {
                country_key: code
            }, function(data) {
                school_count = data;
                label.append(': ' + school_count + ' Schools'); 
            });
        }
    }
});