通过Colorbox回调传递变量

时间:2012-05-16 22:36:08

标签: jquery colorbox

我有一系列在地图上按顺序触发的工具提示。当用户点击地图区域时,会弹出一个颜色框,其中包含有关该位置的信息。

我想获取当我打开颜色框并将其存储为变量时处于活动状态的工具提示的div ID。然后在关闭时,我想重新激活该变量的工具提示。我似乎无法找到将变量从一个调用传递回下一个调用的方法。这是我的代码:

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

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

这甚至可能吗?我尝试使用警报(已选择),但似乎没有工作。

2 个答案:

答案 0 :(得分:0)

假设打开颜色框的click是在具有qTip插件的同一元素上完成的,并且元素类是.city

<强> JQUERY

$(".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");
    }
  });

});

沿着这条线的东西可以解决你的问题。

答案 1 :(得分:0)

恕我直言,你应该避免使用变量作为沟通机制。对此更好的模式是pub / sub,其中在“color”弹出窗口内发生的事件中,发布由具有自己的范围和内部的函数消耗的事件。 JS / JQuery项目有很多pub / subs。一个简单的是Ben Alman的Tiny Pub / Sub。 https://gist.github.com/661855