1

新しい領域にカーソルを合わせるか、新しい領域を選択するときに、選択した領域をオフに切り替えます。

jQuery Maphilight を使用して、マップ上の選択した領域を強調表示しています。クリック状態を正常に追加したので、ユーザーがクリックしたときにマップの領域が強調表示されたままになります。しかし、2 番目と 3 番目の領域をクリックすると、1 番目の領域が強調表示されたままになります。

すべての要素のこの alwaysOn 属性をオフに切り替えるにはどうすればよいですか。私はそれを理解できないようです。

ありがとう。

.bind('click.maphilight', function(e) {     
    e.preventDefault();
    var data = $(this).mouseout().data('maphilight') || {};
    data.alwaysOn = !data.alwaysOn;
    $(this).data('maphilight', data).trigger('alwaysOn.maphilight');
})
4

2 に答える 2

3

今後の参考のために、これが最も効果的です。

// Turn off all
$("area").data('maphilight', { alwaysOn: false }).trigger('alwaysOn.maphilight');

// Turn on one
$("area[data-id=" + id + "]").data('maphilight', {alwaysOn: true}).trigger('alwaysOn.maphilight');
于 2015-01-22T18:12:57.890 に答える
0

私のために働くかもしれない解決策を見つけました:

.bind('click.maphilight', function(e) {     
                    $(this).data('maphilight', { 
                          alwaysOn: true 
                    }).trigger('alwaysOn.maphilight');
                    //check if area wasnt already selected - otherwise gets buggy
                    if( !$(this).hasClass('selected') ){ 
                      $('.selected').data('maphilight', {
                          alwaysOn: false
                      }).trigger('alwaysOn.maphilight');
                      $('#map-tag area').removeClass('selected');
                      $(this).addClass('selected');
                    }
                })
于 2014-03-13T14:55:16.697 に答える