在系列jquery中运行两个命令

时间:2014-04-22 14:03:30

标签: javascript jquery

我想连续运行两个命令,这是我的代码

修改小提琴链接:http://jsfiddle.net/MohamedAref/TLPPw/1/

** HTML **

            <div class="album large-11 medium-6 small-11 columns">
                <a class="album-link" href="gallery-window.html" onclick="" target="_blank">
                    <div class="clone_img"></div>
                    <div class="photos_cont">
                        <div class="photo"><img src="images/gal_1.jpg"/></div>
                        <div class="photo"><img src="images/sticker_pic_1.jpg"/></div>
                        <div class="photo"><img src="images/sticker_pic_2.jpg"/></div>
                        <div class="photo"><img src="images/sticker_pic_3.jpg"/></div>
                    </div>
                </a>
                <a class="album-title" href="">الجمال .. مسابقات و سلالات مختلفة</a>
            </div>

** Jquery **

$('.album').click(function(){
    var that = $(this);
    that.find('.photos_cont .photo').each(function(){
        // img_W.push($(this).find('img').naturalWidth);
        aimgcopy = $(this).find('img').clone();
        that.find('.clone_img').html('').append(aimgcopy);
        alert(that.find('.clone_img img').width());
    });
});

问题是在克隆操作期间运行警报命令,因此alert()显示&#39; 0&#39; 0作为图像宽度,所以我希望在计算图像宽度之前完成克隆操作。

我怎样才能得到这个结果?

2 个答案:

答案 0 :(得分:0)

试试这个:

 $('.album').click(function(){
    var that = $(this);
    that.find('.photos_cont .photo').each(function(){
    aimgcopy = $(this).find('img').clone();
    $('.clone_img img').load(function(){
        alert($(this)[0].height);
    });
    that.find('.clone_img').html('').append(aimgcopy);
    });
  });

答案 1 :(得分:0)

这是解决方案

$('.album').click(function(){
var that = $(this);
that.find('.photos_cont .photo').each(function(){
    aimgcopy = $(this).find('img').clone();
    that.find('.clone_img').html('').append(aimgcopy);
    aimgcopy[0].onload = function() { 
        alert($(this)[0].height);
    }
});
});

感谢Milind AnantwarFrédéric Hamidi