【问题标题】:jquery img tag getting removed after it is added using appendjquery img 标签在使用 append 添加后被删除
【发布时间】: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 的地方设置一个断点,它会留在那里。所以它与它的格式没有任何关系。也许有另一个正在运行的脚本会自动改变它?如果是这种情况,我怎么能嗅出它甚至可能是后端

标签: jquery append image


【解决方案1】:

我怀疑你有某种广告拦截器会删除图像,因为 src 是 admarketplace...

我们曾经花了一个晚上来解决“banner.jpg”图像的类似问题:)

【讨论】:

  • +1,因为对@Evan 感到痛苦.. :),如果jsfiddle.net/gaby/UcQ4G 发生同样的情况(有效),那么这绝对是安迪所说的..
猜你喜欢
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2011-08-19
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多