лента по дням,как реализовать?
Доброй ночи,форумчане,не особо дружу/разбираюсь с javascript,но в силу обстоятельств по работе - пришлось с ним столкнуться,перейду сразу к делу:
есть функционал добавления записи,каким образом можно реализовать функционал сортировки записи по дням? яркий пример: сегодня 24 января 2012 года я добавляю записи на сайт,и они уходят в правый div,завтра 25 января 2012 года я буду добавлять записи,но они будут уходить в левый див,послезавтра - опять в правый,и таким цикличным образом они будут добавляться,то влево - то вправо,по дням,грубо говоря как в facebook реализована timeline. вот уже 13 часов бьюсь об стену головой,перечитал раз 10 справочник,пытаясь найти то,что мне нужно,и хоть капельку разобраться - не выходит,прошу у вас помощи.заранее благодарен. |
если я правильно понял, что проблема с датой
то сделайте var x = Math.floor(new Date() / (24 * 60 * 60 * 1000)) % 2; один день x будет 0, на другой день 1 сделайте условие if (x) { // добавим в левый див } else { // добавим в правый див } |
отличное решение,огромное спасибо,единственный момент,я заменил "(24 * 60 * 60 * 1000)" на (60),дабы проверить это быстрее чем 24 часа,насколько это верное решение,заменять одним значением?и возможно ли просто заменить (24 60 60 1000) на одно значение равное 24ем? ?
|
да, конечно можно заменить (24 * 60 * 60 * 1000) на 86400000 - столько, похоже, милисекунд в 24 часах
|
я понял,и еще пару вопросов:
Эта функция,ведет отчет с последнего добавленного "поста/записи", верно? И второе,добавил для значения вывода записи .css("float","left") и .css("float","right") сооветственно,при добавлении записи,они так и позиционируются,но при обновлении,значения css пропадают и они становятся в один ряд,под друг дружкой,можно ли как-то указать чтобы js запомнил эти значения? |
попробовал через .addClass и задал через .css свойства для класса,повторяется та же история,при добавлении запись отображается как нужно,после обновления страницы они снова друг под другом.
|
показали бы свою верстку
|
.wall_record {
background: none repeat scroll 0 0 #FFFFFF; margin: 0; padding: 0; position: relative; width: 480px; } .r{ float:right; } .l{ float:left; } .wall_record - класс самой записи. .r - класс к записи, которая выводится если интервал 20 секунд (условно) не прошел. .l - класс к записи,которая выводится если интервал превысил 20 секунд(условно) |
если смотреть через firebug у дива wall_record,после обновления страницы,пропадает свойство .l или .r
|
класс просто так не пропадает, видимо, скрипт удаляет
|
*facepalm.JPG*
Держу пари что оп пытается сохранить изменения на странице после обновления. При этом у него уже есть что-нить серверное, что добавляет записи в реальную базу. Он мучается с js и удивляется что всё применённые стили исчезают если обновить страницу. |
бьюсь целый день,опять толку 0,каким образом можно передать значение
var x = Math.floor(new Date() / (24*60*60*1000)) % 2; if (x){ } else { } в шаблон? в моем случае в tpl файл. |
Запостите кусок шаблона который формирует данные элементы, а также пример входных данных которые он получает, и, возможно, вам поможем.
|
if (aResNewWallRecords.length > 0 && result.oWallId) { wall_record_last_id = result.oWallId;} jQuery('.emptyrecords').remove(); var pdata = Math.floor(new Date() / (24)) % 2 ; if (pdata) { jQuery('#recordTmpl').tmpl(aResNewWallRecords, {readyRemoveTextLabel : ready_remove_record}).prependTo('.wallrecords').show('slow').addClass('l'); } else { jQuery('#recordTmpl').tmpl(aResNewWallRecords, {readyRemoveTextLabel : ready_remove_record}).prependTo('.wallrecords').show('slow').addClass('r'); } - это то что он отправляет в браузер,без обновления страницы. на входе,при обновлении страницы,остается только див wall_record_last_id + result.oWallId ( название записи с id ) остальные классы пропадают,это L и R. вот кусок когда который формирует запись и получает информацию приписывая ей id <div class="wall_record ------{if $aWallRecord->getRecordType() == '0'}wall_record_buy{else}wall_record_sell{/if}-------" id="wall_record{$aWallRecord->getId()}"> то,что между черточек - не относится к задаче,не обращайте внимания. |
насколько я понимаю нужно var pdata
передать каким то образом в php и засунуть в эту строчку <div class="wall_record ------{if $aWallRecord->getRecordType() == '0'}wall_record_buy{else}wall_record_sell{/if}-------" id="wall_record{$aWallRecord->getId()}"> с условиями if else *пошел 3 день,продолжаю биться. |
Часовой пояс GMT +3, время: 02:45. |