Как да добавите блок за дата на външен елемент от 3 дни с плъзгане и пускане с пълен календар

Използвам http://arshaw.com/fullcalendar/, за да създам прост календар с плъзгане и пускане функционалност и се надявах, че някой, който има опит с използването му, може да ми помогне малко с въпрос, който имам.

Това, което се опитвам да постигна, е да създам блок с възможност за плъзгане, който подчертава набор от дни вместо един ден в календара. Моят подход за решаване на това беше да взема деня, в който пусна блока, да преброя следващите 3 дни и да го задам като крайна дата.

        //create 3 day block
        var threeDayBlock= date;
        threeDayBlock.setDate(threeDayBlock.getDate() + 2);

След това го добавете към календара, както следва

        copiedEventObject.end = threeDayBlock;

Това обаче прави, че след като го пусна на избрана дата, вместо това премества събитието с 3 дни напред. Това, което бих искал да направи вместо това, е да въведе тридневен блок от деня, в който го пусна, до 3 дни напред.

Ето моя код в jsfiddle http://jsfiddle.net/rayshinn/ZTWgD/3/

Наистина оценявам всяка помощ, която мога да получа за разрешаването на този въпрос! Благодаря ви, че прочетохте.


person BaconJuice    schedule 22.07.2013    source източник


Отговори (1)


Това, което се случва, е, че създавате препратка, наречена threeDayBlock към обекта date. Следователно, когато промените threeDayBlock, вие променяте и date. Всичко, което трябва да направите, е да копирате обекта date, вместо да го препращате:

var threeDayBlock = new Date(date.getTime());

Това е!

Вижте как работи тук: http://jsfiddle.net/ryleyb/ZTWgD/4/

Освен това, за да разберете как Javascript се справя със стойностите, които се копират срещу препратки, вижте тук.

person Ryley    schedule 22.07.2013
comment
това е напълно логично! Много благодаря! - person BaconJuice; 22.07.2013