2012-02-12 62 views
0

我在函數中創建了一個變量,我需要將它傳遞給fancybox onCleanup函數,以便在父頁面中進一步處理,但onCleanup函數無法獲取變量。這是我目前所面對的...它可以看到「無功fontSize的=‘SDFS’」,而不是在點擊功能創建的變量。從函數傳遞變量到fancybox函數

//Customise font size 
$('#font-sizer a').on('click',function(){ 
    $('body').removeClass('font-size-small font-size-medium font-size-large font-size-very-large'); 
    $('#font-sizer a').removeClass('selected'); 
    switch($(this).attr("class")) 
    { 
    case "font-small": 
     fontSize = "font-small"; 
     break; 
    case "font-medium": 
     fontSize = "font-medium"; 
     break; 
    case "font-large": 
     fontSize = "font-large"; 
     break; 
    case "font-very-large": 
     fontSize = "font-very-large"; 
     break; 
    } 
    $(this).addClass('selected'); 
    return false; 
}); 
var fontSize = "sdfs"; 


    //Customise and Add Widgets Lightbox 
    $("#customise,#add-widgets,#launch-profile,#view-all-apps").fancybox({ 
     'padding' : 0, 
     'width'    : 940, 
     'height'   : 634, 
     'autoScale'   : false, 
     'transitionIn'  : 'none', 
     'transitionOut'  : 'none', 
     'type'    : 'iframe', 
     'scrolling'  : 'no', 
     'onCleanup' : function() { 
      window.parent.ifDoneChildFrame(fontSize); 
     } 
    }); 
+0

這是基於你的代碼的工作示例(簡體)http://jsfiddle.net/tjqV8/ 試着在你的開關添加一個「默認」的情況下,看看你的情況是否沒有問題。 – CronosS 2012-02-12 14:34:43

回答

1

如果使用全局變量是你想要什麼這樣做,你應該需要做的是地方:

var fontSize; 

...在你的腳本的頂部,只是裏面:

$(document).ready(function(){ 

您必須刪除其他聲明:

var fontSize = "sdfs"; 

通過將fontSize變量聲明在特定函數之外,即使沒有給它一個值,它也可以被所有函數訪問。當然,如果變量需要通過不同的功能以不同的方式使用,這可能是有問題的。在這裏的變量的作用域

更多信息:http://www.w3schools.com/js/js_variables.asp

+0

這似乎並不工作,我害怕。 – Crashdesk 2012-02-12 14:05:50

+0

清理函數現在讀什麼變量? – AlexKempton 2012-02-12 14:15:25

+0

感謝您的幫助,但是我發現了另一種使用HTML5數據屬性和var fontsize = $(「#fancybox-frame」)。contents()。find(「#font-sizer a.selected」 ).attr( '數據字號'); – Crashdesk 2012-02-12 14:51:52