Условия. 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, время: 04:35. |