我的页面上有图片。对于图像更改我使用的是ajax。我有dataTable,其中每行都有一个图像和一个(锚)元素。我正在制作一个脚本,我试图在其中迭代表格的每一行,如果每行的图像源属性包含subString" no-preview.jpg",则隐藏a(锚点) )那一行的元素。精细。但问题是当我的页面加载然后脚本运行并隐藏所有删除链接,但是当我选择使用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()
答案 0 :(得分:1)
您至少有两个选择:
load
事件,每次加载图片时都应该调用它,imagechange
,最好是imagechange.mymodule
等命名空间)并在每次图像更改后使用jQuery的.trigger()
函数触发它 - 它将调用适当的事件处理程序(如果你附上它),答案 1 :(得分:0)
也许你正在寻找这样的东西:
//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
});
});