เหตุการณ์ปฏิทินเต็มDestroy ไม่เคยถูกเรียก

ฉันใช้ Fullcalendar ล่าสุด, jquery 1.10 และ qtip 2

ฉันเพียงเพิ่ม qtip ให้กับองค์ประกอบในการโทรกลับใน eventRender ที่มีปุ่ม:

element.qtip({
    content: {
        title: { text: event.title },
        text: '<button type="button" onclick="removeEvent(' + event.id + ')">Delete</button>'
    },
    show: {
        event: 'click',
        solo: true
    },
    hide: {
        event: 'unfocus click'
    }
});

ในการเลือกโทรกลับฉันมีดังต่อไปนี้:

$('#calendar').fullCalendar('renderEvent',
    {
        title: 'Available',
        start: start,
        end: end,
        allDay: allDay
    },
    true //make the event stick
);

และนี่คือรหัสเหตุการณ์การลบ:

function removeEvent(eventId, userId)
{    
    //Delete the event
    $('#calendar').fullCalendar('removeEvents', eventId);
}

ภายใต้ eventDestroy callback ฉันมี:

element.qtip('destroy');

ปัญหาของฉันคือ eventDestroy ไม่เคยถูกเรียกเมื่อฉันโทรกลับ

ฉันตั้งค่าตัวอย่าง jsfiddle ที่นี่: http://jsfiddle.net/MusicMonkey5555/Zs657/1/

มันแตกต่างเล็กน้อย แต่เพียงคลิกที่รายการปฏิทิน มันจะแจ้งว่าคุณต้องการลบมัน จากนั้นมันควรจะแสดงการแจ้งเตือนขึ้นมา แต่ไม่เคยทำเลย

ใครมีความคิดว่าทำไมมันไม่ทำงาน?


person MusicMonkey5555    schedule 08.10.2013    source แหล่งที่มา


คำตอบ (2)


ตามเอกสารปฏิทินฉบับเต็ม eventDestroy ใช้ได้เฉพาะตั้งแต่เวอร์ชัน 1.6.3 และคุณกำลังใช้ 1.5

ดู: http://arshaw.com/fullcalendar/docs/event_rendering/eventDestroy/

แก้ไข : ฉันเพิ่งทดสอบสิ่งนี้โดยแก้ไขซอของคุณ และดูเหมือนว่าการโทรกลับยังคงไม่ทำงาน มันถูกทริกเกอร์เมื่อคุณปรับขนาดหน้าต่าง (ฉันถือว่า lib กำลังเรนเดอร์เหตุการณ์อีกครั้งดังนั้นจึงทำลาย DOM)

เมื่อดูโค้ดเล็กน้อย ดูเหมือนว่า eventDestroy callback จะถูกเรียกเมื่อมุมมองปฏิทินแบบเต็มถูกทำลายเท่านั้น ไม่เคยเมื่อคุณลบแต่ละกิจกรรม นั่นจะเป็นข้อจำกัดปัจจุบันของ lib นี้

ในกรณีของคุณ มันจะง่ายกว่าที่จะโทรเรียกกลับ kill ของคุณโดยตรงจากวิธี removeEvent เนื่องจากคุณไม่สามารถพึ่งพา lib ได้

person Julian Descottes    schedule 09.10.2013
comment
ฉันใช้ v1.6.4 โอเค สมเหตุสมผลแล้ว ขอบคุณสำหรับการพิจารณาเพิ่มเติม ฉันคิดว่าทำได้ ฉันแค่มีปัญหาบางอย่างในการรับองค์ประกอบ ดังนั้นฉันจึงสามารถลบ qtip ที่เกี่ยวข้องกับองค์ประกอบนั้นได้ ดูเหมือนว่าฉันไม่สามารถรับรายการ ui นั้นได้โดยเฉพาะ - person MusicMonkey5555; 14.10.2013

สำหรับผู้ที่อาจมีปัญหานี้ในอนาคต: "เหตุการณ์ทำลายการโทรกลับเมื่อลบเหตุการณ์" ได้รับการแก้ไขแล้วในรุ่น 2.1.0

http://github.com/arshaw/fullcalendar/releases/tag/v2.1.0

person arussellk    schedule 10.10.2014