Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Условия. Ajax (https://javascript.ru/forum/jquery/8010-usloviya-ajax.html)

doniv 02.03.2010 23:19

Условия. Ajax
 
Например есть простая конструкция

$("#exemple").hover(function(){

$(".dialog-box p").load('ajax/exemple.html');

}, function() {

});


что нужно написать, чтобы сделать проверку загружен ли элемент.

Если элемент service.html уже загружен, то ничего не делать, если еще не загружен, то сделать бла-бла-бла.
Спасибо за помощь!:)

Tim 02.03.2010 23:36

if ( !service.htm )
{
    eval('бла-бла-бла');
}


как-то так я думаю... Если серьёзно, то в приведённом вами куске кода нет service.html, так что с кодом помочь не могу. Поставьте флаг в виде глобальной переменной мол loadStatus = false; // не загружен. Как загрузите, ставьте в true и где нужно проверяйте в условии.

doniv 03.03.2010 00:10

Эм, пардон:). Конечно я имел ввиду exemple.html. Дело в том, что я загружаю несколько различных документов. Их имя соответствует '+id+'.html. И мне нужно, чтобы когда, например exemple.html уже подгружен, при наведении на элемент он не подгружался второй раз, но подгружался, например, exemple2.html. Вот так вот:)

micscr 03.03.2010 08:43

Мне бы твои проблемы ... ;)
А по сути ответ дан уже Timом.
Только для смены состояний флаг будет наращивать значения, а в hover будет стоять switch. И хранить флаг можно не как глобальную переменную, а как св-во самого элемента (с помощью метода data).

doniv 04.03.2010 15:34

Код подвергся модификации, в связи с чем я совсем запутался в условиях.

$("#menu a").hover(function(){
		var cont = $(this).attr('class');
		var tbox = $(".dialog-box p");
		var dbox = $(".dialog-box");
	
	$.ajax({
     url: 'ajax/'+cont+'.html',
     beforeSend: function(){
		dbox.animate({ opacity: "show" }, 500);
		tbox.addClass('loading');
     },
     success: function(boxtext){
          tbox.append(boxtext);
          tbox.animate({ opacity: "hide" }, 0).animate({ opacity: "show" }, 400);
          tbox.removeClass('loading');
		  tbox.html(boxtext);
                    }
                });


}, function() {

});


Задача та же, только теперь совсем не понятно, как проверить навожу я на тот же класс или нет. Если на тот же, то остановить лоад, если нет, то загружать новый boxtext в ".dialog-box p". АААА :write::help:


Часовой пояс GMT +3, время: 18:44.