这是为了那些已经拆开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
。
如何获得我在另一个函数中使用的值以将其用于此一个???
答案 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收集的变量中检索它。
这就是全部:)