#javascript #jquery
#javascript #jquery
Вопрос:
$('.posts li img').each(function() {
if( this.complete )
imageResize($(this), 64, 64);
else
$(this).load(imageResize($(this), 64, 64));
});
Я попытался добавить «alert (‘test’)» в imageResize(), но это не работает. Есть ли какая-либо причина, по которой imageResize() не вызывается?
Комментарии:
1. Есть ли у узла DOM
complete
атрибут? Кроме того, вы хотите использовать{}
дляif()
, если вам нужно более одного оператора. Лично я бы посоветовал избегать использования управляющих структур, разделенных пробелами, в Javascript.
Ответ №1:
Сделайте это функцией:
$(this).load(function(this) {imageResize(this, 64, 64)});
Ответ №2:
Не уверен, что это проблема, но это, безусловно, потенциальная проблема. Второй вызов imageResize() будет выполнен немедленно, а код возврата будет использован в качестве обработчика события загрузки. Вам нужно обернуть ее в анонимную функцию и использовать ее вместо этого, например
$('.posts li img').each(function() {
if( this.complete )
imageResize($(this), 64, 64);
else
$(this).load(function() {imageResize($(this), 64, 64);});
});