主js文件无法查看在另一个js文件中声明的元素值

时间:2013-07-28 06:18:38

标签: javascript impress.js

我遇到了我安装的库的问题,但我很确定答案更为通用。

我有一个js文件,用这段代码计算“data-x”和“data-y”的值:

$(document).ready(function () {
    var x2 = -1920;
    var y2 = 0;

    var resX = $(window).width();
    var resY = $(window).height();
    var disX = (resX)/1920;
    var disY = (resY)/1080;

    $("#div2").attr('data-x',disX*x2);
    $("#div2").attr('data-y',disY*y2);
});

当我在页面加载后检查Chrome控制台时,所有值都正确地显示在右边的div中,但是第一个js文件(impress.js)没有看到值,除非它们被硬编码到HTML中文件。

我尝试切换每个文件加载的顺序无效。这是我的html的样子:

http://jsfiddle.net/gVdkL

我能做些什么来获得impress.js(我下载的js库)来查看我在myjs.js文件中计算的值?它是如何加载的问题,还是html文档底部的impress.init()?

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:1)

看看你的小提琴和你附加的代码,我想问题是你的代码将在DOM ready事件上运行,impress().init()将在解析时运行(因此很可能在DOM之前运行)完全准备好了。)

您可以在代码后面加上这一行:

$(document).ready(function () {
    var x2 = -1920;
    var y2 = 0;

    var resX = $(window).width();
    var resY = $(window).height();
    var disX = (resX)/1920;
    var disY = (resY)/1080;

    $("#div2").attr('data-x',disX*x2);
    $("#div2").attr('data-y',disY*y2);


    impress().init(); // <-- init it here after the values are being set
});