【发布时间】:2011-07-12 02:19:57
【问题描述】:
在我的网站上,我尝试使用 ("#report-type").append($img) 附加我的图像,其中 img 是一个包含 src 网站的 jquery 对象,基于更改 src 的下拉菜单选择图像。我知道它实际上附加在正确的位置,img 标签的格式正确,并且如果我只是将 img 标签硬编码到 HTML 中,图像就会显示出来。
但是,页面运行时会发生什么,我在萤火虫中看到 img 被附加了一瞬间,然后它消失了。有谁知道为什么会发生这种情况?
这是我的下拉更改处理程序函数:
$(".update-report").click(function () {
var src, image, $img2, val;
//Clear old charts
//$("#report-type option").children().remove();
//alert(typeof $("select option:selected").val());
val = $("select option:selected").val();
switch (val[0]) {
case "0":
src = "https://graphite.admarketplace.net:2222/render/?from=-7days&width=1400&height=420&_salt=1309990757.707&target=alias(movingAverage(divideSeries(sumSeries(*.server.xml.*.revenue)%2CsumSeries(*.server.xml.*.clicks)),200),%22CPC%22)&fgcolor=black&bgcolor=white&title=Average%20CPC%20per%20minute%20-%207%20Days&hideLegend=true";
$("#chart1").attr('src',src);
break;
case "1":
alert("here1");
src = "http://graphite.admarketplace.net:2222/render/?from=-30days&width=1400&height=420&_salt=1309990757.707&target=alias(movingAverage(divideSeries(sumSeries(*.server.xml.*.revenue)%2CsumSeries(*.server.xml.*.clicks)),200),%22CPC%22)&fgcolor=black&bgcolor=white&title=Average%20CPC%20per%20minute%20-%2030%20Days&hideLegend=true";
$img = createImg(src);
alert(typeof $img);
$("#report-type").append($img);
break;
case "2":
alert("here2");
src = "http://graphite.admarketplace.net:2222/render/?from=-1hour&width=1000&height=400&_salt=1309980469.069&target=alias(e.network.lb.xml.AverageRespTime,%22East%22)&target=alias(w.network.lb.xml.AverageRespTime,%22West%22)&yMax=500&fgcolor=black&bgcolor=white&title=Average%20Response%20Time%20in%20milliseconds%20Current%20Hour";
$img = createImg(src);
src = "http://graphite.admarketplace.net:2222/render/?from=-25hour&until=-24hour&width=1000&height=400&_salt=1309980469.069&target=alias(e.network.lb.xml.AverageRespTime,%22East%22)&target=alias(w.network.lb.xml.AverageRespTime,%22West%22)&yMax=500&fgcolor=black&bgcolor=white&title=Average%20Response%20Time%20in%20milliseconds%20Current%20Hour%20Yesterday";
$img2 = createImg(src);
$(".grid 16").append($img);
$(".grid 16").append($img2);
break;
case "3":
alert("here3");
src = "http://graphite.admarketplace.net:2222/render/?from=-1day&width=1000&height=400&_salt=1309980469.069&target=alias(movingAverage(e.network.lb.xml.AverageRespTime,20),%22East%22)&target=alias(movingAverage(w.network.lb.xml.AverageRespTime,20),%22West%22)&yMax=500&fgcolor=black&bgcolor=white&title=Average%20Response%20Time%20in%20milliseconds%20Current%2024%20Hours";
$img = createImg(src);
src = "http://graphite.admarketplace.net:2222/render/?from=-2day&until=-1day&width=1000&height=400&_salt=1309980469.069&target=alias(movingAverage(e.network.lb.xml.AverageRespTime,20),%22East%22)&target=alias(movingAverage(w.network.lb.xml.AverageRespTime,20),%22West%22)&yMax=500&fgcolor=black&bgcolor=white&title=Average%20Response%20Time%20in%20milliseconds%20Yesterday";
$img2 = createImg(src);
$(".grid 16").append($img);
$(".grid 16").append($img2);
break;
default:
alert("in the default");
}
});
请注意这里的案例 0,因为我一直在胡闹试图让它发挥作用。这也不起作用,即使我将 img 标签硬编码到 HTML 中并且只尝试更改 src。但是,当我尝试附加整个图像时,这也不起作用。
【问题讨论】:
-
我认为我们可能需要查看更多代码。我们可以看到 $img 的初始化位置吗?您可以编辑您的问题并包含发生这种情况的整个事件处理程序吗?这可以在其他浏览器中重现吗?
-
我认为您的图像标签格式不正确。这就是浏览器不呈现它的原因。
-
如果我在萤火虫中,我实际上可以在添加 img 的地方设置一个断点,它会留在那里。所以它与它的格式没有任何关系。也许有另一个正在运行的脚本会自动改变它?如果是这种情况,我怎么能嗅出它甚至可能是后端