我在下面的陈述中关注的陈述是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");
}
答案 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;
}
希望帮助你的伙伴