1

jVectorMapを使い始めたばかりです。クリックで国を選択し、ユーザーが新しい国を選択するまで、選択した国の色を維持できるようにしたい。私がここで間違っていることを理解できませんか?

$(function () {
    function showSelectedCountry(event, code) {
        viewModel.selectedCountry(code);
        $('#map').vectorMap('set', 'colors', {code: '#f00' });
    }

    $('#map').vectorMap({
        hoverColor: '#f00',
        backgroundColor: '#C8C8C8',
        onRegionClick: showSelectedCountry
    });
});
4

2 に答える 2

2

同じ問題だと思うものに出くわしました。私はあなたのように色を設定していましたが、この色は耐えられませんでした。regionMouseOutが「選択された」色を元の値にリセットしていたことがわかりました。選択した国のregionMouseOutでデフォルトのアクションを防止するか、マウスアウトで色を再設定してみてください(後でしか機能しませんでした)。

// Prevent selected country colour being changed on mouseOut event 
$('#map').bind('regionMouseOut.jvectormap', function(event, code){
    if( code == selectedCountry ) {
        var data = {};
        data[code] = "#0000ff";
        $("#map").vectorMap("set", "colors", data);
    }
});

私が遭遇した他の何か:'コード'はvar値の代わりに文字列として渡されていました。オリジナルを少し変更する必要があるかもしれません:

$(function () {
    function showSelectedCountry(event, code) {
        viewModel.selectedCountry(code);
        var data = {};
        data[code] = "#f00";            
        $('#map').vectorMap('set', 'colors', data);
    }

    $('#map').vectorMap({
        hoverColor: '#f00',
        backgroundColor: '#C8C8C8',
        onRegionClick: showSelectedCountry
    });
});
于 2012-04-21T10:54:37.807 に答える
0

少し遅れましたが、(私がしたように)まだ検索している人のために、イベントは呼び出されます

onRegionOver: function(e,code){e.preventDefault();}

そうではありません(もう?)regionMouseOut

于 2013-08-08T08:56:06.883 に答える