- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 FullCalendar v3.8.2
和 eventDataTransform 方法时遇到问题。我现在搜索了几个小时,所以为了防止发疯,我写了我的第一篇 StackOverflow 帖子...
我想将一个附加参数传递给事件对象,调用 blockd
。所以在前面被阻止的事件有不同的样式
如果我通过 Int 1
传递 blocked
参数,日历的事件会显示在前端。 (如下面代码ex所示)
尽管我做了一个 PHP 变量 ,例如$is_blocked
相反,我在前端收到一个 TypeError
并且事件没有显示。
那是我的 fullcalendar.js
脚本:
eventSources: [
{
url: WP_PUBLIC_DATA.pluginsUrl + '/dev-booking-system/dbs-calendar-feed.php', // use the `url` property
className: 'dbs-event',
eventDataTransform: function( eventData ){
var blocked = parseInt( eventData.blocked );
if( blocked == 1 ){
var substr = 'Reserviert - ' + eventData.title.substring( 0, 15 ) + '...';
return {
id: eventData.id,
title: substr,
start: eventData.start,
end: eventData.end,
className: 'dbs-event--disabled-by-load'
};
}
}
}
],
将 JSON 发送到 javascript 文件时,会发生一些奇怪的事情。eventSoruces url 使用 wordpress 循环从 php 文件中获取数据。
这就是它变得奇怪的地方。传递 'blocked' => 1
有效,传递 'blocked' => $is_blocked
无效(值通过 intval 转换为 int)
if( $event_listing->have_posts() ) :
while( $event_listing->have_posts() ) : $event_listing->the_post();
$post_id = get_the_ID();
$title = get_the_title();
$is_blocked = intval( get_post_meta( $post_id, 'event_reserved', true ) );
$start = get_post_meta( $post_id, 'start_trip', true ) != '' ? get_post_meta( $post_id, 'start_trip', true ) : NULL;
$end = get_post_meta( $post_id, 'end_trip', true ) != '' ? get_post_meta( $post_id, 'end_trip', true ) : NULL;
$event_array[] = array(
'id' => $post_id,
'title' => $title,
'start' => $start,
'end' => $end,
// 'blocked' => 1,
'blocked' => $is_blocked,
'allDay' => true // Event ist nicht Zeitabhängig
);
endwhile;
else:
wp_send_json_error( "No events found" );
endif;
echo json_encode($event_array);
exit;
使用 Wordpress,我按正确的顺序排列脚本:
//fullcalendar
wp_enqueue_script('dbs-fullcalendar-moment-scripts', plugins_url('assets/fullcalendar/lib/moment.min.js', __FILE__ ), array('jquery'), '3.8.2', true );
wp_enqueue_script('dbs-fullcalendar-scripts', plugins_url('assets/fullcalendar/fullcalendar.js', __FILE__ ) , array('jquery'), '3.8.2', true );
Firefox 说 TypeError: eventInput is undefined
,Chrome 反对说 Uncaught TypeError: Cannot read property 'start' of undefined
你知道发生了什么事吗?很高兴听到你的消息,阻止我喝太多咖啡;)
这是 JSON 结果:
0:
id: 3453
title: "19. März bis 23. März Beipieltext"
start: "2018-03-19"
end: "2018-03-23"
blocked: 0
allDay: true
1:
id: 3451
title: "09. März bis 11. März Beispieltext"
start: "2018-03-09"
end: "2018-03-11"
blocked: 1
allDay: true
作为 int 值收到的 'blocked' 值,但似乎 javascript 对 '0' 有问题,因为如上所述只传输 '1' 值,整个事情都有效
最佳答案
问题是每当 blocked
为 0 时,您的 eventDataTransform 方法不会向日历返回任何内容,因此尝试使用返回事件的代码会崩溃,因为它正在尝试访问事件对象这是不存在的。
即使您不打算更改事件数据,您仍然需要再次返回现有事件数据。
你也不需要做 parseInt() 因为 blocked
已经是一个数字,你真的不需要建立一个新的事件对象 - 你可以只修改给定的那个你。所以你的代码可以如下:
eventDataTransform: function( eventData ){
if( eventData.blocked == 1 ){
var substr = 'Reserviert - ' + eventData.title.substring( 0, 15 ) + '...';
eventData.title = substr;
eventData.className = 'dbs-event--disabled-by-load';
}
return eventData; //always return something, even if it wasn't modified
}
关于javascript - JS fullcalendar,将 PHP 变量解析为 JSON 时出现 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49170278/
有没有办法在 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 新手。在我的项目中,我需要显示带有时间范围的日历以及每天为每个培训中心分配的参与者。更准确地说,一天可以有很多个培训时段,由培训中心进行。因此,我想展示哪个培训中心分配
我是一名优秀的程序员,十分优秀!