2011-07-24 6 views
1

私のチャートでうまく動作します。 mouseoverイベントはうまくいきましたが、クリックイベントを追加したときに、クリックイベントが実行されませんでした。Protovis Jquery tipsyはクリックイベントでは機能しません

以下

は私のコードです:

var vis = new pv.Panel() 
      .width(w) 
      .height(h); 

      vis.add(pv.Bar) 
      .data(data) 
      .width(4) 
      .left(function() 5 * this.index) 
      .height(function(d) Math.round(d*4)) 
      .bottom(0) 
      .text(function(d) d.toFixed(1)) 
      .event("mouseover", pv.Behavior.tipsy({gravity: "w", fade: true})) 
      //If I remove the mouseover event, the click event will work but not when both are veing put together. 
      .event("click", function() self.location = "http://stanford.edu"); 

      vis.render(); 

誰も私は、この問題を解決するのに役立つことはできますか?ありがとうございました。

答えて

2

ここには回避策があります。クリックコールバック関数をpv.Behavior.tipsyに渡して、その中でclickイベントを呼び出すことができます。

  1. コールバック関数に渡すpv.Behavior.tipsy(...)を変更:

    pv.Behavior.tipsy =関数にイベントコールを変更

  2. (OPTS、コールバック)コールバック関数を渡します:

    .event( "mouseover"、pv.Behavior.tipsy {gravity: "w"、fade:true}、function {} {alert( 'コールバック');}) )

  3. protovis.tipsy.jsに戻り関数の最後の行を変更します

    復帰機能(D){ ....... $(先端).mouseleave(クリーンアップ).tipsy( "表示") ; if(コールバック){ $(tip).click(コールバック); } };

+0

私が同じ問題に遭遇したとき、これはうまくいきました。 –

関連する問題