0

マップ上で順番に起動する一連のツールチップがあります。ユーザーがマップの領域をクリックすると、その場所に関する情報を含むカラーボックスがポップアップ表示されます。

カラーボックスを開いたときにアクティブになるツールチップの div ID を取得し、変数として保存したいと考えています。次に、閉じるときに、その変数でツールチップを再度アクティブにしたいと思います。ある呼び出しから次の呼び出しに変数を渡す方法がわかりません。これが私のコードです:

$(".city").colorbox({
    inline:true, 
    width:"390px", 
    opacity: .2,

    onOpen: function(){var selected = $('.qtip').attr('id');},
    onClosed: function(){$(selected).qtip();}
    });

これは可能ですか?alert(selected) だけを使用してみましたが、機能していないようです。

4

2 に答える 2

0

カラーボックスを開くことがqTipclickプラグインを持つ同じ要素で行われ、要素クラスが次のとおりであると仮定します.city:

Jクエリ

$(".city").bind("click", function() {

  // store the jQuery object of the clicked element
  var $obj = $(this);

  // hide the tooltip
  $obj.qtip("hide");

  // call the colorbox
  $obj.colorbox({
    inline   : true, 
    width    : "390px", 
    opacity  : .2,
    onClosed : function(){
      // call the tooltip
      $obj.qtip("show");
    }
  });

});

この行に沿った何かがあなたの問題を解決するはずです。

于 2012-05-16T23:43:43.960 に答える
0

私見ですが、通信のメカニズムとして変数を使用することは避けるべきです。このためのより良いパターンは pub/sub です。この場合、カラーボックス ポップアップの「内部」で発生するイベントで、独自のスコープと内部を持つ関数によって消費されるイベントが発行されます。JS/JQuery プロジェクト用の pub/sub が多数あります。簡単なものは Ben Alman の Tiny Pub/Sub です。 https://gist.github.com/661855

于 2012-05-17T15:35:46.763 に答える