我有以下列表,当用户点击li时,我希望ul.list隐藏然后显示div.single并同时将img.data-img src设置为data-img li,但是在加载时我想将img src设置为li元素内的loader.gif。
<ul class="list">
<li data-id="7" data-thumb="http://test.com/assets/pdc/thumbs/66.png" data-img="http://test.com/assets/pdc/img/66.png" data-country="Australia" data-company="Big Farm" data-app="Tea" data-brand="Big Farm" data-package="500" class="product air-500 cat7">
<img class="tip" data-country="Australia" data-brand="Big Farm" src="assets/img/ajax-loader.gif">
</li>
</ul>
<div class="single">
<img class="data-img" src="">
</div>
var preloader = $(this).find('.tip').attr('src');
$('.single aside img').attr('src', preloader);
$('.single aside img').attr('src', url).load(function () {
});
答案 0 :(得分:1)
很难判断图像何时加载;您可能只想预加载图像(使用$("<img>").attr('src', src)
就足够了。)
你可以依靠.load
,但根据我的经验,这不是100%:
$("li").on('click', function () {
var $this = $(this);
//Show the throbber
$this.find('.tip').show();
//After image finishes loading, hide the `ul.list`
$(".single .data-img").attr('src', $this.data-img).load(function () {
$this.closest('.list').hide();
});
});