Условия. Ajax
Например есть простая конструкция
$("#exemple").hover(function(){ $(".dialog-box p").load('ajax/exemple.html'); }, function() { }); что нужно написать, чтобы сделать проверку загружен ли элемент. Если элемент service.html уже загружен, то ничего не делать, если еще не загружен, то сделать бла-бла-бла. Спасибо за помощь!:) |
if ( !service.htm )
{
eval('бла-бла-бла');
}
как-то так я думаю... Если серьёзно, то в приведённом вами куске кода нет service.html, так что с кодом помочь не могу. Поставьте флаг в виде глобальной переменной мол loadStatus = false; // не загружен. Как загрузите, ставьте в true и где нужно проверяйте в условии. |
Эм, пардон:). Конечно я имел ввиду exemple.html. Дело в том, что я загружаю несколько различных документов. Их имя соответствует '+id+'.html. И мне нужно, чтобы когда, например exemple.html уже подгружен, при наведении на элемент он не подгружался второй раз, но подгружался, например, exemple2.html. Вот так вот:)
|
Мне бы твои проблемы ... ;)
А по сути ответ дан уже Timом. Только для смены состояний флаг будет наращивать значения, а в hover будет стоять switch. И хранить флаг можно не как глобальную переменную, а как св-во самого элемента (с помощью метода data). |
Код подвергся модификации, в связи с чем я совсем запутался в условиях.
$("#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, время: 17:53. |