You need to enable JavaScript to run this app. ASP.NET Razor列表页Emergency为true时闪烁文本不生效问题排查
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Razor列表页Emergency为true时闪烁文本不生效问题排查

失效原因与修正方案

核心问题定位

  • 表格DOM结构不规范,提示元素错位不可见
    表格表头定义了5列(医生信息、患者信息、就诊时间、Emergency提示、操作按钮),但循环渲染每行数据时,判断Emergency字段的逻辑没有包裹在对应的<td>单元格中,是直接以游离<span>的形式放在<tr>标签下,夹在时间列<td>和操作列<td>的中间。
    浏览器解析不规范的表格结构时会自动修正位置,要么把游离的span移出表格可视区域,要么打乱整个表格的列对齐逻辑,最终看不到对应的提示文本。
  • 脚本元素匹配无效
    上述结构错误会导致脚本选中的.blink_me元素不在正常的列展示区域,视觉上就会呈现闪烁功能完全没生效的效果。

修正步骤

  1. 补全Emergency列对应的表格单元格,把提示逻辑放到单元格内部,保证和表头列数一一对应:
@foreach (var obj in Model)
{
    <tr>
        <td width="25%">@obj.Doctor.Firstname @obj.Doctor.Lastname @obj.Doctor.Code</td>
        <td width="25%">@obj.Patient.FirstName @obj.Patient.LastName</td>
        <td width="25%">@obj.DateAndTime</td>
        <!-- 新增专门承载Emergency提示的td,与表头列对齐 -->
        <td class="text-center">
            @if(obj.Emergency)
            {
                <span class="blink_me fw-bold text-danger">Emergency</span>
            }
        </td>
        <td class="text-center">
            <div class="w-75 btn-group" role="group">
                <a asp-route-Id="@obj.Id" asp-action="Upsert" class="btn btn-primary mx-2">
                    <i class="fas fa-edit"></i>
                </a>
                <a asp-route-Id="@obj.Id" asp-action="Delete" class="btn btn-danger mx-2">
                    <i class="far fa-trash-alt"></i>
                </a>
            </div>
        </td>
    </tr>
}
  1. 优化脚本执行时机,避免DOM未加载完成就执行元素匹配:
$(function() {
    (function blink() {
        $('.blink_me').fadeOut(500).fadeIn(500, blink);
    })();
});

补充:如果不想依赖jQuery实现闪烁效果,可以直接给.blink_me类添加CSS动画,减少脚本依赖:

.blink_me {
  animation: blinker 1s linear infinite;
}
@keyframes blinker {
  50% { opacity: 0; }
}

内容的提问来源于stack exchange,提问作者MirDer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.07 08:54:04