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

恕我直言,您应该避免使用变量作为通信机制。一个更好的模式是发布/订阅,其中在颜色框弹出“内”发生的事件中发布一个由具有自己的范围和内部的函数使用的事件。JS/JQuery 项目有很多 pub/subs。一个简单的例子是 Ben Alman 的 Tiny Pub/Sub。 https://gist.github.com/661855

于 2012-05-17T15:35:46.763 回答
0

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

查询

$(".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 回答