Делаю всплывающие уведомления. Проблема: появляется, исчезает, но только один раз. Что не так?
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'); });
}
DarveL, да знаю я про toggle, тут алгоритм для создания и удаления разный, думаю, не в этом дело
25 Фев 2012, 16:59автор идет читать про эффекты в jquery.
Он у тебя всегда появляется, но ты его не видишь, потому что первый раз fadeOut сделал твоему элементу opacity: 0;
Ну так мне его удалять и не надо. Просто классы присваиваю, а так скрыт, да.
Вроде записываю текст, присваиваю класс, показываю, а потом скрываю, и удаляю класс. Вот ошибка где?
я написал где ошибка, но ты похоже не прочитал сообщение. Да и твой код это не то, что ты описал: "записываю текст, присваиваю класс, показываю, а потом скрываю, и удаляю класс" - кое что в коде делает не то, что ты написал
25 Фев 2012, 17:40А, понял, о чем ты говоришь. Попробовал, заменил fadeOut на slideUp - результат тот же(
25 Фев 2012, 20:07Ок, тогда еще вопрос: я собираюсь чат сделать. Думаю над алгоритмом появления сообщений: каждые 5 сек проверяю страницу, в запросе ид последнего сообщения. Если есть сообщения с большим ид'ом, то пишу их ид'ы в json, и далее в цикле загружаю их, запрашивая по сообщению с отдельной страницы (в json чтоб можно было по одному вывести, чтоб с эффектом появлялись).
Нормалное решение?
нет.
1. 5 секунд - долго
2. если за 5 секунд нашпигуют 20 сообщений, ты сделаешь 1 чек + 20 запросов сообщений к серверу. Зачем? Если можно просто передать 1 чек и сразу получить в json 20 сообщений после чего отрендерить их по очереди.