0

我的页面上有图像。对于图像更改,我正在使用 ajax。我有 dataTable ,其中每一行都有一个图像和一个(锚)元素。我正在制作一个脚本,我试图在其中迭代表格的每一行,如果每一行上的图像源属性包含子字符串“no-preview.jpg”,则隐藏该行的 a(anchor) 元素. 美好的。但问题是当我的页面加载时脚本运行并隐藏所有删除链接,但是当我选择使用 ajax 更新的图像和图像时,由于 ajax,脚本不会运行。

现在我想问一下是否有任何与图像有关的事件可以用来监听图像变化。那就是每当我的图像 scr 属性发生变化时,该事件就会在 jQuery 中触发。可能是我必须委派活动。

编辑

var saarcImages = $("#SaarcImage #saarcImagesTable tr").each(function(index){

    var $tr = $(this);
    var $image = $tr.find("img");

    if ($image.length != 0) {   //Image exist

        var imageSource = $image.attr("src");       
        var contains = imageSource.indexOf("no-preview.jpg") >= 0; // true
        if (contains) {

            $tr.find("a").fadeOut("slow");

        } else {

            $tr.find("a").fadeIn("slow");

        }
    }
}); //end of .each()
4

2 回答 2

1

你至少有两个选择:

  • 监听load图像上的事件,每次加载图像时都应该调用它,
  • 创建您自己的事件(例如imagechange,最好命名空间为 like imagechange.mymodule)并在每次使用 jQuery.trigger()函数更改图像后触发它 - 它会调用适当的事件处理程序(如果您附加它),
于 2012-04-12T09:29:02.330 回答
0

Maybe you are looking for something like this:

//YOUR AJAX CALL TO RETRIEVE IMAGE
$.post('yourURLhere',{myVar : myValue}, function(info) {

          //WAIT FOR IMAGE TO LOAD
          $('img[title="item_picture"]').load(function() {
                    //DO SOMETHING HERE ONCE IMAGE IS LOADED
          }); 

});     
于 2012-04-12T09:27:03.423 回答