jquery fancybox,从初始函数中获取变量

时间:2016-01-16 15:47:29

标签: jquery variables fancybox

这是为了那些已经拆开fancybox的人,或者能够比我更好地理解它背后的jquery东西(不应该很难):)

根据this article中描述的情况,我添加了一个新值,fancybox主函数从被点击的链接中检索。

; (function($) {
var tmp, loading, overlay, wrap, outer, content, close, title, perma, nav_left, nav_right,

perma是我的变量;它将在_start函数中用于从<a>

中检索值
perma = selectedOpts.perma || (obj.nodeName ? $(obj).attr('perma') : obj.perma) || '';

如果此时我快速alert(perma)我得到确认正在按预期检索变量。

现在,这已发生在函数_start内,主函数$;但是,我需要在$.fancybox.init内的脚本中使用此类函数的外部,我将在其中使用它:

$('#permabox').bind("click", function(){
        window.location.replace(perma);
    });

但是,perma值会返回undefined

如何获得我在另一个函数中使用的值以将其用于此一个???

1 个答案:

答案 0 :(得分:0)

我再一次找到了自己问题的答案:

1)必须在_finish函数的开头声明变量:

_finish = function () {
        var perma; (...)

2)奇怪的是,var perma不应该在返回它的函数中被调用:

_giveMePerma = function () {
            /*var perma;    this breaks it*/
            return perma;
        };

在将div附加到fancybox外部之后,上面将最终用于_finish,如下所示:

$('#permabox').bind("click", function(){
        var permalink = _giveMePerma();
        window.location.assign(permalink);
    });//permabox

这将打开由函数_giveMePerma检索的永久链接,该函数从包含在链接中并由fancybox收集的变量中检索它。

这就是全部:)