获取$ .find()元素的宽度为零

时间:2014-04-02 04:17:55

标签: jquery ajax

我正在尝试将一个元素发送到一个函数来计算一些数据。我使用$.find()来获取元素并使用$.width来获取其宽度但由于某种原因它始终显示0.我不知道为什么。我错过了什么?

这是在ajax成功回调中传递它:

success: function(data)
{
    var result = jQuery(data).find('.dir_content'); // get element with find here
    var margin_amount = getScreenMiddle(result);    // pass element to function

    result.attr('id', full_path);
    result.css('margin-right', margin_amount);

    if(prev_element != null)
    {
        prev_element.css("margin-right", 0);
    }
    prev_element = result;

    jQuery('.list-inline').append(result);
},

这是函数

function getScreenMiddle(elem)
{
    var center_pos = ($(window).width() - elem.width()) / 2 + "px";
                                       // this is always 0
    return center_pos;
}

所以这个函数只返回错误的相同值。我需要以另一种方式传递吗?

1 个答案:

答案 0 :(得分:0)

首先在DOM文档中包含result元素,然后尝试使用width

success: function(data)
    {
        var result = jQuery(data).find('.dir_content'); // get element with find here
    jQuery('.list-inline').append(result);    
    var margin_amount = getScreenMiddle(result);    // pass element to function

        result.attr('id', full_path);
        result.css('margin-right', margin_amount);

        if(prev_element != null)
        {
            prev_element.css("margin-right", 0);
        }
        prev_element = result;


    },