Xwab
Форумыnavigate_nextJavaScript

Вопрос по jQuery
Сообщения
SPAHI4

Делаю всплывающие уведомления. Проблема: появляется, исчезает, но только один раз. Что не так?

function status(text,status){ //status это "error" или "message"; исходный див #status скрыт, стиль к нему применен по id
  st=$('#status');
  st.addClass(status).text(text).slideDown('fast');
  setTimeout(statusRemove, 5000);
}

function statusRemove(){
  $("#status").fadeOut('slow', function(){ this.removeClass('error').removeClass('message'); });
}

25 Фев 2012, 16:20
DarveL

SPAHI4, нужен переключатель, читай про toggle

25 Фев 2012, 16:32
SPAHI4

DarveL, да знаю я про toggle, тут алгоритм для создания и удаления разный, думаю, не в этом дело

25 Фев 2012, 16:59
san

автор идет читать про эффекты в jquery.
Он у тебя всегда появляется, но ты его не видишь, потому что первый раз fadeOut сделал твоему элементу opacity: 0;

25 Фев 2012, 17:02
SPAHI4

Ну так мне его удалять и не надо. Просто классы присваиваю, а так скрыт, да.
Вроде записываю текст, присваиваю класс, показываю, а потом скрываю, и удаляю класс. Вот ошибка где?

25 Фев 2012, 17:23
san

я написал где ошибка, но ты похоже не прочитал сообщение. Да и твой код это не то, что ты описал: "записываю текст, присваиваю класс, показываю, а потом скрываю, и удаляю класс" - кое что в коде делает не то, что ты написал

25 Фев 2012, 17:40
SPAHI4

А, понял, о чем ты говоришь. Попробовал, заменил fadeOut на slideUp - результат тот же(

25 Фев 2012, 20:07
san

тогда дебажить только. Так никто ничего не скажет.

25 Фев 2012, 23:18
SPAHI4

Ок, тогда еще вопрос: я собираюсь чат сделать. Думаю над алгоритмом появления сообщений: каждые 5 сек проверяю страницу, в запросе ид последнего сообщения. Если есть сообщения с большим ид'ом, то пишу их ид'ы в json, и далее в цикле загружаю их, запрашивая по сообщению с отдельной страницы (в json чтоб можно было по одному вывести, чтоб с эффектом появлялись).
Нормалное решение?

26 Фев 2012, 14:10
san

нет.
1. 5 секунд - долго
2. если за 5 секунд нашпигуют 20 сообщений, ты сделаешь 1 чек + 20 запросов сообщений к серверу. Зачем? Если можно просто передать 1 чек и сразу получить в json 20 сообщений после чего отрендерить их по очереди.

26 Фев 2012, 15:23
Ответить на тему