2012-05-16 44 views
0

我有一系列在地圖上順序觸發的工具提示。當用戶點擊地圖區域時,彈出一個關於位置的信息。通過顏色框回調傳遞變量

我想抓住工具提示的div ID,當我打開colorbox並將其作爲變量存儲時,它是活動的。接下來,我想用該變量重新激活工具提示。我似乎無法找到一種方法將變量從一個回調傳遞給下一個回調。這是我的代碼:

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

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

這是可能的嗎?我嘗試使用警報(選擇),它似乎並沒有工作。

+0

將'selected' var聲明爲全局(在任何函數之外)可能是一個好的開始。當您嘗試在另一個函數中訪問該函數時,它將在有限的函數範圍內聲明,它會在控制檯中返回一個未定義的變量錯誤。 –

回答

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

}); 

東西沿這條線應該可以解決你的問題。

0

恕我直言,你應該避免使用變量作爲通信機制。一個更好的模式是pub/sub,其中在colorbox彈出窗口內發生的事件發佈一個由具有其自己的作用域和內部的函數消耗的事件。 JS/JQuery項目中有很多pub/subs。一個簡單的是本阿曼的小小酒館/小組。 https://gist.github.com/661855