高我正在创建一个图像库,您可以通过AJAX加载图像。
我使用以下代码获得fadeIn
效果。
$('img').load(function() {
$(this).fadeIn();
});
这是第一组图像(加载了页面)的工作,但是当我通过AJAX调用更多(见下面的代码)时,$('img').load()
似乎不再晃动了。
$('#clickme').click(function(){
$('.tile').fadeOut();
$.post('http://localhost/wp-admin/admin-ajax.php',{
'action' : 'da_ajax_posts',
'data' : 'foobarid'
},(function($data){
$('#container').html($data);
}));
这是我的其余代码:
<div id="container">
<div class="tile w2 h2 t1 l1">
<h2>Image10</h2>
<img src="/wp-content/themes/site/images/tim.php?w=385&h=256&src=http://localhost/wp-content/uploads/2012/07/img10.jpg">
<p></p>
</div>
<div class="tile w1 h2 t1 l3">
<h2>image9</h2>
<img src="/wp-content/themes/site/images/tim.php?w=190&h=256&src=http://localhost/wp-content/uploads/2012/07/Chrysanthemum.jpg">
<p></p>
</div>
<div class="tile w2 h1 t1 l4">
<h2>Image8</h2>
<img src="/wp-content/themes/site/images/tim.php?w=385&h=146&src=http://localhost/wp-content/uploads/2012/07/Desert.jpg">
<p></p>
</div>
<div class="tile w2 h2 t2 l4">
<h2>image7</h2>
<img src="/wp-content/themes/site/images/tim.php?w=385&h=256&src=http://localhost/wp-content/uploads/2012/07/Hydrangeas.jpg">
<p></p>
</div>
<div class="tile w1 h1 t3 l1">
<h2>Image6</h2>
<img src="/wp-content/themes/site/images/tim.php?w=190&h=146&src=http://localhost/wp-content/uploads/2012/07/img10.jpg">
<p></p>
</div>
<div class="tile w1 h1 t4 l1">
<h2>image 5</h2>
<img src="/wp-content/themes/site/images/tim.php?w=190&h=146&src=http://localhost/wp-content/uploads/2012/07/Jellyfish.jpg">
<p></p>
</div>
<div class="tile w1 h2 t3 l2">
<h2>Image4</h2>
<img src="/wp-content/themes/site/images/tim.php?w=190&h=256&src=http://localhost/wp-content/uploads/2012/07/Koala.jpg">
<p></p>
</div>
<div class="tile w1 h1 t3 l3">
<h2>Image3</h2>
<img src="/wp-content/themes/site/images/tim.php?w=190&h=146&src=http://localhost/wp-content/uploads/2012/07/Lighthouse.jpg">
<p></p>
</div>
<div class="tile w1 h1 t4 l5">
<h2>Image2</h2>
<img src="/wp-content/themes/site/images/tim.php?w=190&h=146&src=http://localhost/wp-content/uploads/2012/07/Tulips.jpg">
<p></p>
</div>
<div class="tile w2 h1 t4 l3">
<h2>Image1</h2>
<img src="/wp-content/themes/site/images/tim.php?w=385&h=146&src=http://localhost/wp-content/uploads/2012/07/Penguins.jpg">
<p></p>
</div>
</div>
非常感谢提前。
答案 0 :(得分:2)
您需要使用live定义加载事件:
$('img').live("load", function() {
$(this).fadeIn();
});
答案 1 :(得分:2)
您应该在ajax回调中再次绑定此事件。
在此行“$('#container')之后写下面的代码.html($ data);”
$('img').load(function() {
$(this).fadeIn();
});
答案 2 :(得分:1)
live
现已弃用,请参阅on
进行替换:http://api.jquery.com/on/
类似live
的Juste,它的目标是绑定一个事件处理程序,该处理程序也会在你第一次绑定它时不存在的元素上被触发。
在类似于OP的情况下,你想要的是:
// binding the event to the body but restricting its scope to img tags
$('body').on('load', 'img', function() {
$(this).fadeIn();
});