- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在通过 fullcalendar 构建日历.
我制作了一个 ajax 按钮,它将从另一个 php 页面获取事件。
ajax 按钮工作正常,我能够获取带有事件的 json,并且我得到了一个漂亮的月历显示(在我第一次点击 ajax 按钮时)。
我唯一的问题是:当我点击 ajax 按钮上的第二个时间时,日历不会重新加载/重新发布/呈现..并且我停留在第一个日历上(这对我来说是无关紧要的)。
任何人都知道问题是什么,我该怎么做才能在每次单击 ajax 按钮时重新发布新日历?
代码如下:
<form id="my-form-id" method="post" action="Calendar_form3.php"> Year:
<INPUT NAME="gregorian_year" SIZE=4 MAXLENGTH=4 value="2016">(1-6000) Latitude:
<INPUT NAME="latitude" value="40.7127"> Longitude:
<INPUT NAME="longitude" value="-74.0059"> <button id="ajax-button" type="button">Ajax button</button> </form>
<script>
function displayCalendar() {
var target = document.getElementById("main");
var formData = new FormData(document.getElementById("my-form-id"));
console.log(formData);
var xhr = new XMLHttpRequest();
xhr.open('post', 'JewishCalendar_form3.php', true);
xhr.onreadystatechange = function() {
console.log('readyState: ' + xhr.readyState);
if (xhr.readyState == 2) {
target.innerHTML = 'Loading...';
}
if (xhr.readyState == 4 && xhr.status == 200) {
var Month_details_for_display = JSON.parse(xhr.responseText);
//var Month_details_for_display= JSON.parse(Month_details_for_display2);
target.innerHTML = "funciton will start working...";
displayCalendar222(Month_details_for_display);
}
}
xhr.send(formData);
}
function displayCalendar222(Month_details_for_display) {
alert("Hello! I am an alert box!!");
var Events_In_Json = Month_details_for_display['EventsInSameStractureForAll'];
var json_backgrundColor = Month_details_for_display['Big_Calendar_cell_background_color'];
var json_iconstring = Month_details_for_display['iconString'];
var DefaulteDateForFullCalendarISO8601 = Month_details_for_display['fullMonthDetails']['DefaulteDateForFullCalendarISO8601'];
$('#calendar').fullCalendar({
header: {
left: 'prev',
center: 'title',
right: 'next'
},
events: Events_In_Json,
fixedWeekCount: false,
defaultDate: DefaulteDateForFullCalendarISO8601,
dayRender: function(date, cell) {
var cellDate = date.format('D');
if (!cell.hasClass('fc-other-month')) {
//if this if is true that means that the day belongs to the current relevent month (and not the prev \ next month)
cell.css('background-color', json_backgrundColor[cellDate]);
//from here: cheking which icons to show
if (json_iconstring[cellDate].includes('HAV')) {
cell.prepend('<img src=\' icons/havdala2.png \'>');
}
if (json_iconstring[cellDate].includes('Mod')) {
cell.prepend('<img src=\' icons/israel.png \'>');
}
if (json_iconstring[cellDate].includes('Jewish')) {
cell.prepend('<img src=\' icons/jewish.png \'>');
}
if (json_iconstring[cellDate].includes('PAR')) {
cell.prepend('<img src=\' icons/parasha.png \'>');
}
if (json_iconstring[cellDate].includes('CL')) {
cell.prepend('<img src=\' icons/cl.png \'>');
}
if (json_iconstring[cellDate].includes('Pub')) {
if (json_iconstring[cellDate].includes('USA')) {
cell.prepend('<img src=\' icons/usa.png \'>');
} else if (json_iconstring[cellDate].includes('UK')) {
cell.prepend('<img src=\' icons/uk.png \'>');
} else if (json_iconstring[cellDate].includes('CA')) {
cell.prepend('<img src=\' icons/canada.png \'>');
} else if (json_iconstring[cellDate].includes('AUS')) {
cell.prepend('<img src=\' icons/australia.png \'>');
} else if (json_iconstring[cellDate].includes('FR')) {
cell.prepend('<img src=\' icons/france.png \'>');
}
}
//until here:: cheking which icons to show
} else {
//this days belongs to the prev \ next months. so we give them opacity)
cell.css('background-color', '#ffffff');
}
},
});
}
var button = document.getElementById("ajax-button");
button.addEventListener("click", displayCalendar);
</script>
<div id='main'> result here </div>
<div id='calendar'></div>
最佳答案
你第二次点击按钮时,你应该调用类似的东西:
$('#calendar').fullCalendar('render');
或者在再次渲染之前完全销毁压延机,比如:
$('#calendar').fullCalendar('destroy')
.empty()
.fullCalendar({
//...
});
见
关于javascript - 单击 ajax 后无法重新加载 fullcalendar div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41116346/
有没有办法在 FullCalendar 中动态更改事件模板? 更新。 我想要的是指定新的事件 html(例如在 eventRender 回调中)并使 FullCalendar 将其用于我的事件渲染。像
我正在使用 FullCalendar 组件,我需要为周末、周五和周六着色。 我已经按照这里的建议使用了以下内容: Can I set a different color for the weekend
我正在实现 fullcalendar 并在时区问题上苦苦挣扎。 这是代码: $('#calendar').fullCalendar({ //re-initialize the calendar
我希望 fullCalendar 在不重新加载页面的情况下重绘自身(所有结构和事件)。 场景: 我正在使用支持 Resource View 的 fullCalendar 补丁。 .对于一些用户操作,我
我想在同一页面上添加多个 FullCalendars(可选)以安排不同类型的事件并将信息保存在数据库中,但查看演示/示例代码,我似乎每页只能添加一个日历,因为它由 呈现。 .您能否让我知道是否有办法
我已将 FullCalendar 设置为接受 drop,确实如此。但是我用 revert:'invalid' 构造的可拖动对象似乎无法将 FullCalendar 上的日期识别为可放置的,并恢复回来。
我公司最近购买了 Full-Calendar Scheduler 插件。有没有正确的方法在代码中隐藏许可证 key ?对此有哪些好的做法? 最佳答案 你是对的,没有办法完全隐藏 schedulerLi
在 FullCalendar如何使资源可点击? 我已经检查了 API,但我看不到任何相关内容,我是否遗漏了什么? 我在找 resource-click -事件就像我们对事件一样? 最佳答案 在 res
我有额外的数据(在我的例子中是一个数字),它是通过一个 javascript 函数获得的——我想在每天的单元格中显示它。 例如 - 如果天数在右上角,我希望它显示在左上角 - 每天自动显示。 我看到有
我在单个页面上创建多个 fullcalendar,我想编写一个事件渲染回调,以便它可以从调用它的 fullcalendar 实例中读取选项,例如 minTime 和 maxTime,不知道如何做这个。
看起来默认值为 20 像素,但我希望将其提高,因此长度为 1 个时隙的事件将能够显示事件标题和正文。当前,当事件长度为 1 个时隙时,仅显示事件标题。 最佳答案 任何仍在寻找新版本答案的人。 在新版本
我正在尝试实现 this solution在 Fullcalendar 中“变灰”过去的事件,但我没有任何运气。不过,我不太精通 Javascript,所以我认为我犯了一些愚蠢的错误。 我已经将建议的
我使用 jQuery fullCalendar (http://arshaw.com/fullcalendar/docs/selection/unselectAuto/) 我使用这个日历的可选版本 (
这看起来非常简单,但我花了半天时间把头撞在墙上,试图弄清楚为什么我的全日历事件只显示在 77 像素,而单元格(月 View )的宽度似乎是 90 像素或更高。我曾尝试修改 fc-event css 规
我正在尝试在全日历中将时间格式更改为 24 小时制。 我试图找到它 here但我无法弄清楚。 这里的代码片段: jQuery('#calendar').fullCalendar({ heade
在月 View 中 fullcalendar 有一个很好的功能,可以在非全天事件的顶行显示开始时间。如果您不想在事件标题中提供更多详细信息,这可能很有用。 我想在月 View 中显示几个详细信息,例如
如何在 fullcalendar 中显示事件的描述? 我有具有标题和描述的事件。 那么如何显示描述呢? 最佳答案 当您添加标题和描述时,它将连接起来。 使用以下代码,您可以连接标题: eventRen
我正在尝试使用 FullCalendar 在网页上呈现 Google 日历中的事件。我想要开始日期/时间、描述和地点。 future 事件在一个 div 中,过去事件在另一个 div 中。 现在,我的
我正在尝试突出显示 FullCalender.io 中的选定日期(与当前日期类似)。 已关注 FullCalendar - Highlight a particular day in week vie
我是 FullCalendar 新手。在我的项目中,我需要显示带有时间范围的日历以及每天为每个培训中心分配的参与者。更准确地说,一天可以有很多个培训时段,由培训中心进行。因此,我想展示哪个培训中心分配
我是一名优秀的程序员,十分优秀!