javascript - 为什么我不能在 FancyBox 中使用 javascript 变量?

标签 javascript jquery variables fancybox

// Post Div
<div id="post-1"><img src="art/image01.jpg" /></div>
<div id="post-2"><img src="art/image02.jpg" /></div>
<div id="post-3"><img src="art/image03.jpg" /></div>

// MYSQL Json Encode Generated Information
var allPosts = [{"type":"tumblr", "link":"www.blah.com"},
    {"type":"instagram", "link":"blah.com"},
    {"type":"tumblr", "link":"www.blah.com"}]

var postTotals = 3;

// Generates FancyBox Links for Clickable Post Div
function generateFancyBox(){
    for(i=1;i<=postTotals;i++){
        $("#post-"+i).click(function(){
            alert(allPosts[i].link); // This alerts "www.blah.com" just fine.
            $.fancybox({
            "type" : "iframe",
            "href" : allPosts[i].link // This Variable is always "Undefined".
            });
        });
    }
}

我不明白为什么 href :allPosts[i].link - 总是变成未定义

此代码是我正在处理的一个较大项目的简写版本。我有 html DIV,需要 FancyBox 来创建可点击的链接。

我似乎无法获取 allPosts[i].link 来打印 URL。然而,在它的正上方,当我 alert(allPosts[i].link); 时,它会很好地打印 URL。

我做错了什么?

最佳答案

将 $.fancybox 调用替换为立即执行的函数,这会创建一个额外的闭包。

(function () {
        alert(i);
        $.fancybox({
            "type": "iframe",
            "href": allPosts[i].link // This Variable is always "Undefined".
        });
    })();

关于javascript - 为什么我不能在 FancyBox 中使用 javascript 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29277474/

相关文章:

jquery - 在浏览器后退按钮上重新加载验证码

python - 如果没有分配值,如何为变量分配一个值,但是如果分配了一个值,如何保留该值?

Select 语句中的 MySQL 用户定义变量作为表名

javascript - 如何更改配色方案?

javascript - 简单的正则表达式 : how do I say: "it' s okay to have an "s " or "es " or "' s "at the end of the word, match those too."?

javascript - 在 jquery 中转义单引号 (')。

javascript - 不确定如何设计使用 XML 创建 HTML 对象的 JavaScript/jQuery 功能

javascript - 如何获取文本区域内的文本宽度? (javascript/jquery)

javascript - 如何显示加载程序直到显示图像?

javascript - 如何测试 JS 变量是否等于两个值中的任何一个?