【发布时间】:2014-03-04 07:50:25
【问题描述】:
我正在使用全日历。当我点击一个事件时,我想显示一个对话框。但我只知道如何弹出警报或提示。如何使用 JavaScript 弹出对话框?
我的 jQuery 代码如下:
$(document).ready(function () {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var calendar = $('#calendar').fullCalendar({
editable: true,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
events: "../testcalendar/fullcalendar/events.php",
// Convert the allDay from string to boolean
eventRender: function (event, element, view) {
if (event.allDay === 'true') {
event.allDay = true;
} else {
event.allDay = false;
}
},
selectable: true,
selectHelper: true,
select: function (start, end, allDay) {
var title = prompt('Event Title:');
if (title) {
var start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss");
var end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss");
$.ajax({
url: '../testcalendar/fullcalendar/add_events.php',
data: 'title=' + title + '&start=' + start + '&end=' + end,
type: "POST",
});
calendar.fullCalendar('renderEvent', {
title: title,
start: start,
end: end,
allDay: allDay
},
true // make the event "stick"
);
}
calendar.fullCalendar('unselect');
},
editable: true,
eventDrop: function (event, delta) {
var start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss");
var end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss");
$.ajax({
url: '../testcalendar/fullcalendar/update_events.php',
data: 'title=' + event.title + '&start=' + start + '&end=' + end + '&id=' + event.id,
type: "POST",
});
},
eventResize: function (event) {
var start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss");
var end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss");
$.ajax({
url: '../testcalendar/fullcalendar/update_events.php',
data: 'title=' + event.title + '&start=' + start + '&end=' + end + '&id=' + event.id,
type: "POST",
});
},
eventClick: function (calEvent, jsEvent, view) {
alert('Id afspraak: ' + calEvent.id + '\nTitel afspraak: ' + calEvent.title + '\nBeschrijving afspraak: ' + calEvent.description + '\nStarttijd: ' + calEvent.start + '\nEindtijd: ' + calEvent.end);
},
eventMouseover: function (event, domEvent) {
var layer = '<div id="events-layer" class="fc-transparent" style="position:absolute; width:100%; height:100%; top:-1px; text-align:right; z-index:100"><a><img src="../testcalendar/editbt.png" title="edit" width="14" id="edbut' + event.id + '" border="0" style="padding-right:3px; padding-top:2px;" /></a><a><img src="../testcalendar/delete.png" title="delete" width="14" id="delbut' + event.id + '" border="0" style="padding-right:5px; padding-top:2px;" /></a></div>';
$(this).append(layer);
$("#delbut" + event.id).hide();
$("#delbut" + event.id).fadeIn(300);
$("#delbut" + event.id).click(function () {
$.ajax({
url: '../testcalendar/fullcalendar/delete_events.php',
data: 'id=' + event.id,
type: "POST",
});
var nTime = 1 * 50;
window.setTimeout("location.reload()", nTime);
});
$("#edbut" + event.id).hide();
$("#edbut" + event.id).fadeIn(300);
$("#edbut" + event.id).click(function () {
var title = prompt('\n\nNew Event Title: ');
if (title) {
$.ajax({
url: '../testcalendar/fullcalendar/update_title.php',
data: 'title=' + title + '&id=' + event.id,
type: "POST",
});
var nTime = 1 * 50;
window.setTimeout("location.reload()", nTime);
}
});
},
eventMouseout: function (calEvent, domEvent) {
$("#events-layer").remove();
},
});
});
【问题讨论】:
-
你要么自己动手,要么使用图书馆。当您使用 jQuery 时,请查看
jQuery-UI -
我想你想要 confirm() 代替。
-
感谢 Xotic,您的评论有效:)。我想在对话框中显示事件的 ID。我该如何完成这项工作?
标签: javascript jquery events dialog fullcalendar