/ / Получаване на CSS на неочакван елемент с jQuery - javascript, jquery, css

Получаване на CSS на незаменен елемент с jQuery - javascript, jquery, css

Създавам специфични DOM елементи динамично за определено оформление. В някои случаи мога да получа ширината на предварително създаден елемент с помощта на jQuery (за определяне на други фактори на оформлението).

var width = parseInt((jQuery(element).css("width")));

Това обаче работи само след като елементът е прикачен към прозореца. Има ли някакъв начин да се получи теоретичната ширина на елемент, който се генерира, но все още не е прикачен към прозореца?

(Допълнителна информация: Горещи кости на функцията, просто ги генерирам с a document.createElement())

Отговори:

0 за отговор № 1

Това не е много практично или полезно, но аз просто написах тази функция, която създава "пясъчник", като клонира родителя и го поставя в домашния екран.

var getStyle = function($parent, $element, props){
if(typeof props == "string"){props = [props];}
var $sandbox = $parent.clone().css({
position: "absolute",
display: "inline-block",
width: $parent.width(),
height: $parent.height(),
top: -1000,
left: -1000
});
$("body").append($sandbox);
$sandbox.append($element);
var result = {};
for(var i=0;i<props.length;i++){
var p = props[i];
if(p == "width"){ result[p] = $element.width(); }
else if (p == "height"){ result[p] = $element.height(); }
else{ result[p] = $element.css(p); }
}
$sandbox.remove();
return result;
}


console.log(
getStyle(
$("#name"),                    //parent
$("<div>helo</div>"),          //new elemen
["width","height","color"]     //properties to fetch
)
);

http://jsfiddle.net/beXyM/1/