2012-01-05 16 views
3

を使用してmaphilight、それはUSEMAP '属性で画像に適用され、マウスオーバーjQueryのは、私がmaphilightプラグインを使用しています「onclickの」方法

にそのマップ(ここではドキュメント:http://davidlynch.org/projects/maphilight/docs/)で定義された領域の概要を説明します。

"onmouseover"の代わりにonClickイベントでハイライト効果をトリガーします。

jQuery('.area').click(function(e){ 
    e.preventDefault(); 

    var data = jQuery(this).mouseout().data('maphilight') || {}; 
    data.alwaysOn = !data.alwaysOn; 
    jQuery(this).data('maphilight', data).trigger('alwaysOn.maphilight'); 

}); 

それが正常に動作しますが、私は新しいクリックを行うとHILIGHT効果を消去したい:

私はこれを行います。

アイデア?

答えて

1

ルック:これに

  $(map).trigger('alwaysOn.maphilight').find('area[coords]') 
      .bind('mouseover.maphilight', mouseover) 
      .bind('mouseout.maphilight', function(e) { clear_canvas(canvas); }); 

:トリックを行います「クリック」して、「マウスオーバー」イベントを変更

  $(map).trigger('alwaysOn.maphilight').find('area[coords]') 
      .bind('click.maphilight', mouseover) 
      .bind('mouseout.maphilight', function(e) { clear_canvas(canvas); }); 

0

コードを調べると、イベントmouseout.maphilightがキャンバスをクリアするハイライトマップにバインドされているように見えます。私はあなたがそれをクリアするためにそのイベントを引き起こすことができると思います。おそらく、自分で状態を追跡する必要があるように見えます。コードと変更のこの部分のための

0
<code> 
$('.mianchor').click(function(e) { 
     e.preventDefault(); 
     var colorx = $(this).attr('title'); 
     var data = {}; 
     data.alwaysOn = !data.alwaysOn; 
     data.stroke = 'none'; 
     data.strokeWidth = 0.0000001; 
     data.strokeColor = colorx; 
     data.fillColor = colorx; // Sample color 
     data.fillOpacity = 1; 
     $('#mapa').data('maphilight', data).trigger('alwaysOn.maphilight');   
    }); 

関連する問題