【问题标题】:fullcalendar - Scheduler - resourceRender Not Using Multilinefullcalendar - 调度程序 - resourceRender 不使用多行
【发布时间】:2023-03-29 12:24:01
【问题描述】:

我正在使用 fullcalendar.io 和添加的调度程序。我已经用以下代码覆盖了 resourceRender:

function (resourceObj, labelTds) {
   const textColor = this.calculateForeground(resourceObj.color);
   labelTds.html('<div style="background: ' + resourceObj.color + ';
                color: ' + textColor + '">'
                + resourceObj.name +
                '</div>');
}

(calculateForeground(..) 只是计算文本应该是黑色还是白色)

这样在渲染资源时,它看起来像这样:

<th class="fc-resource-cell" data-resource-id="4">
   <div style="background: #EB0007; color: white">
      <font style="vertical-align: inherit;">
         <font style="vertical-align: inherit;">Resource Name</font>
      </font>
   </div>
</th>

但我的问题是某些资源名称比其他资源名称大,因此它们会换行到下一行,而其他资源名称则不会,这在我的背景设置下看起来很奇怪:

关于如何解决此问题的任何提示?我希望背景填满整个空间,单行文本垂直居中:

我希望在尝试 jQuery 之前使用内联样式来解决这个问题。谢谢!

【问题讨论】:

  • 严格no screen shots
  • 这不是代码截图。这还算吗?
  • 如果它不是 sn-p 并且您想显示有问题的图像,它应该在没有点击而不是链接的情况下可见。
  • 我最初尝试添加它们,但系统告诉我我需要 10 个声望(积分?)。
  • 感谢您为我编辑问题! :) 我很感激!

标签: fullcalendar fullcalendar-scheduler


【解决方案1】:

我认为问题是您在每个 td.相反,您可以直接操作标签 &lt;td&gt; 的 CSS,而无需重新编写资源名称:

resourceRender: function (resourceObj, labelTds) {
  const textColor = this.calculateForeground(resourceObj.color);
  labelTds.css("background-color", resourceObj.color);
  labelTds.css("color", textColor);
}

这样,颜色适用于整个&lt;td&gt;,而不仅仅是其中的&lt;div&gt;。每个&lt;div&gt; 只会有其内容的高度,因此你的问题,但&lt;td&gt;s 都具有彼此相同的高度。

【讨论】:

  • 这很好用!虽然我必须写资源的名称,因为它默认使用 id。
  • @Stevie 不,根据我的经验,如果您提供它,它默认使用“标题”字段。正如您似乎正在使用的那样,“名称”不是 fullCalendar 期望的字段。如果您将其更改为“标题”,那么您将无需做任何额外的事情。
  • 啊,是的。我记得最初添加了标题,但由于我的同事不喜欢它而将其删除。我会坚持使用 .html(resourceObj.name) 添加它。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-11
相关资源
最近更新 更多