Javascript只适用于警报,为什么?

时间:2010-01-14 19:29:14

标签: javascript jquery

我在下面的陈述中关注的陈述是fancybox = 1;如果我创建的任何临时图像的maxWidth超过480,则需要发生这种情况。

与html相关的一些背景知识: 我有一个环绕图像的链接 图像是调整大小的版本,链接的href是原始的未图像化图像 有一系列这些链接包装图像
一个div,addon-large-image,包装了整个事物。

出于某种原因,如果我有'alert(m);'此代码有效包括在内。我正确地在最后的if语句中结束(在这种情况下,我的图像宽度超过480),我得到的最后一个警告是“触发”。但是,如果我注释掉'alert(m);',并且不做其他更改,'alert(“Triggered”);'没有开火,告诉我事实上,我没有进入最后的条件。

对我在这里做错了什么的想法?我有一个Java编程背景,但是我对Jquery的任何重要意义都比较新,所以我猜我有某种语法问题'alert(m);'是一种偶然的修复。

'tallest'与我的问题范围无关,它实现了它应该正确的,在别处使用,并且在我实现maxWidth之前存在。

    var tallest = 0;
    var tempImg = new Image();
    var tempSrc = "";
    var maxWidth = 0;

    // Finds the tallest image in the set.
    $("#addon-large-image img").each(function () {
        var n = $(this).attr("height");
        if (tallest < n) {
            tallest = n;
        }

        tempSrc = $(this).parent().attr("href");
        $(tempImg).attr("src", tempSrc);

        var m = $(tempImg).attr("width");

        alert(m);

        if (maxWidth < m) {
            maxWidth = m;
        }
    });

    if (maxWidth > 480) {
        fancybox = 1;
        alert("Triggered");
    }

2 个答案:

答案 0 :(得分:1)

看起来你的脚本还没有完全加载。尝试在jQuery document.ready中运行它,看看它是否有效。

答案 1 :(得分:0)

你使用过Ajax Request吗?

如果是,则将您的代码放在

的末尾
AjaxObject.onreadystatechange = function () {
       if (AjaxObject.readyState == 4) {
           .
           .
           .
           .
           .

      // PUT HERE
        }
   }

然后如果否

使用它:

function testName()
{
$(document).ready(function(){
    var tallest = 0;
    var tempImg = new Image();
    var tempSrc = "";
    var maxWidth = 0;

    // Finds the tallest image in the set.
    $("#addon-large-image img").each(function () {
        var n = $(this).attr("height");
        if (tallest < n) {
            tallest = n;
        }

        tempSrc = $(this).parent().attr("href");
        $(tempImg).attr("src", tempSrc);

        var m = $(tempImg).attr("width");

        alert(m);

        if (maxWidth < m) {
            maxWidth = m;
        }
    });
});
return true;
}

希望帮助你的伙伴