У вас, кажется, очень интересные вопросы.Это мой скромный ответ:
$(document).ready(function() {
$(".Photos a").click(function () {
var href_attribute = $(this).attr('href');
var new_item = $('<img src="' + href_attribute + '" />')
.hide()
.load(function () {
alert('Img was loaded! Width: ' + this.width + ' and height: ' + this.height);
})
.fadeIn(2000)
.appendTo('.AppendingDiv');
return false;
});
});
Живой пример: http://jsfiddle.net/hobobne/BF5En/10/
Видите ли, вы должны убедиться, что изображение предварительно загружено, для этого мы используем .load()
,В противном случае вы получите 0 .Это на самом деле хорошо, потому что это означает, что скрипт работает, просто все так быстро, что он может получить размеры..load()
гарантирует, что изображение сначала загружается и только затем получает размеры.
Для любых целей, которые вы хотели использовать размеры, я рекомендую делать это и внутри .load()
.Потому что у вас, вероятно, все равно будет несколько .Photos a
.
Кроме того, как вы могли заметить, ваш .fadeIn(2000)
не работал.Это потому, что ваш предмет был добавлен до того, как вы его назвали.Как вы видите, я исправил это для вас:)
NB! Извините, я переименовал некоторые переменные (в моей голове стало больше логики).