Со стандартным отражением нет, но есть библиотека, которая может сделать это за вас: objenesis .
Он специально предназначен для создания экземпляров классов без конструкторов по умолчанию и используется другими библиотеками сериализации, такими как xstream .
Примечание: конструктор может не вызываться в эти случаи (но это, по-видимому, то, что вы хотите).
Сделал рабочую скрипку для вас: http://jsfiddle.net/U4nRq/1/
EDIT: исправить это, чтобы возвращаемый размер был постоянным:
var speed = 300;
for (var i = 0; i < 4; i ++) {
$("#box" + i).attr("stored_h", $("#box" + i).css('height'));
$("#box" + i).attr("stored_w", $("#box" + i).css('width'));
$("#box" + i).attr("stored_left", $("#box" + i).children().css('left'));
$("#box" + i).attr("stor_top", $("#box" + i).children().css('top'));
}
$('div').hover(
function() {
$(this).stop().css({'zIndex':'5'}).animate({
height : $(this).children().css('height'),
width : $(this).children().css('width')
}, speed);
$(this).children().animate({
left : '0',
top : '0'
}, speed);
},
function() {
$(this).stop().css({'zIndex':'0'}).animate({
height : $(this).attr("stored_h"),
width : $(this).attr("stored_w")
}, speed);
$(this).children().animate({
left : $(this).attr("stored_left"),
top : $(this).attr("stored_top")
}, speed);
}
);
Fiddle: http://jsfiddle.net/U4nRq/9/
Вы можете попробовать
$('div').hover(
function() {
$(this).attr('data-width', $(this).width());
$(this).attr('data-height', $(this).height());
$(this).stop().css({'zIndex':'5'}).animate({
height : $(this).children().css('height'),
width : $(this).children().css('width')
}, speed);
$(this).children().animate({
left : '0',
top : '0'
}, speed);
},
function() {
var w = $(this).attr('data-width');
var h = $(this).attr('data-height')
$(this).stop().css({'zIndex':'0'}).animate({
height : h,
width : w
}, speed);
$(this).children().animate({
left : left[i],
top : top[i]
}, speed);
}
);