2014-09-16 2 views
0

У меня есть следующий выпуск.Как передать .load() если изображение уже загружено?

У меня есть веб-приложение, которое показывает изображение, если я нажму на значок.

$('#ModalArtImage img').load(function(){ 
    $('#ModalArtImage').css('visibility','visible').zIndex(9999); 
}); 

это работает нормально.

Чтобы закрыть только DIV (открытые компанией Imagecontainer) Я использую этот

$('.imgWindow').on('click', function(){ 
    $(this).parent().css('visibility','hidden'); 
}); 

.imgWindow это общее окно (Imagecontainer).

Если я закрою Imagecontainer и снова нажмем значок, изображение уже загрузится с первым кликом, и он не получит доступ к .load(), так что изображение imagecontainer больше не отображается.

Причина, по которой я использую .load(), заключается в том, что я не хочу показывать imagecontainer до того, как изображение, которое должно отображаться, будет загружено полностью. Поэтому я пытаюсь проверить его на .load('img'), что на самом деле работает.

Есть ли способ решить эту проблему?

EDIT:

решаемые это сейчас нравится:

if($('#ModalArtImage img').prop('complete')) 
{ 
    $('#ModalArtImage').css('visibility','visible').zIndex(9999); 
} 
else 
{ 
    $('#ModalArtImage img').load(function(){ 
     $('#ModalArtImage').css('visibility','visible').zIndex(9999); 
    }); 
} 

ТНХ к sahbeewah

+2

вы можете сделать скрипку –

+0

я бы, но я не могу, это идет throu большого проекта и много, включая вещи и пользовательские функции. На самом деле это просто объясняется, но только потому, что я говорю о главной проблеме :) Img создается php и передается в jquery, поэтому иногда передаваемый код равен, потому что имя пользователя было одинаковым. В этом случае система думает, что ничего не изменилось. Я не могу перестроить это с помощью чистого javascript/jquery – Dwza

ответ

2

Существует complete свойство на img элементов, показывает ли изображение завершения загрузки.

var showImage = function() { 
    $('#ModalArtImage').css('visibility','visible').zIndex(9999); 
}; 

var $img = $('#ModalArtImage img'); 

if ($img.prop('complete')) { 
    showImage(); 
} else { 
    $img.load(showImage); 
} 
+0

, это выглядит правильно ... плохо попробуйте – Dwza

+0

, это был правильный намек. Большое спасибо :) – Dwza

Смежные вопросы