84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
最近在公司做项目,有一个页面中使用了JS来控制图片尺寸,大致如下:
function resizeImage() { balabala... } $('img').resizeImage();
发现这只对页面加载完时已经存在的图片有效,而对那先随后使用ajax操作加载出来的图片不生效,请问该如何解决这个问题?
ringa_lee
通过ajax请求回来的是图片路径的话,获得这个dom元素再次调用这个函数就好了。注意这些操作应该放在ajax操作成功的回调函数中
楼主用的是jquery?那么我们用jquery来解释一下。
jquery
页面初始化完成后,jquery只能认识已经加载到DOM里的标签,类或者ID。对于之后通过ajax加载进来的DOM,先前的jquery表示不认识。
通过jquery的on方法可以解决这个问题。比如:$(document).on('resize', 'img', function () {})。on方法通过冒泡监听的方法做到此功能。
on
$(document).on('resize', 'img', function () {})
你觉得调了这个方法,就会有一个独立的监听,一直监听img element,有变化了就resize?自然不是,所以就如楼上兄所说,在ajax回调后处理。
通过ajax请求回来的是图片路径的话,获得这个dom元素再次调用这个函数就好了。注意这些操作应该放在ajax操作成功的回调函数中
楼主用的是
jquery
?那么我们用jquery
来解释一下。页面初始化完成后,
jquery
只能认识已经加载到DOM里的标签,类或者ID。对于之后通过ajax加载进来的DOM,先前的
jquery
表示不认识。通过
jquery
的on
方法可以解决这个问题。比如:
$(document).on('resize', 'img', function () {})
。on
方法通过冒泡监听的方法做到此功能。你觉得调了这个方法,就会有一个独立的监听,一直监听img element,有变化了就resize?
自然不是,所以就如楼上兄所说,在ajax回调后处理。