javascript - 将焦点从一列移动到表格的另一列时如何调用javascript函数
问题描述
我在表中有以下列。当我移动到另一列时,我想调用 javascript 函数 changecolumn(),这里是代码
<script>
changecolum()
{
}
</script>
<table id="attendance">
<tr>
<td><input type="checkbox" value="true" asp-for="@Model.attendanceLogList[i].IsSickMarked" data-tag="SickHrs" /> <input type="hidden" value="false" asp-for="@Model.attendanceLogList[i].IsSickMarked" /></td>
<td><a href="#" data-pk="SickHrs">@Model.attendanceLogList[i].SickHrs</a><input asp-for="@Model.attendanceLogList[i].SickHrs" type="hidden" class="bros" /></td>
<td><input type="checkbox" value="true" asp-for="@Model.attendanceLogList[i].IsHolidayMarked" data-tag="HolidayHrs" /><input type="hidden" value="false" asp-for="@Model.attendanceLogList[i].IsHolidayMarked" /> </td>
<td class="htInvalid"><a href="#" data-pk="HolidayHrs">@Model.attendanceLogList[i].HolidayHrs</a><input asp-for="@Model.attendanceLogList[i].HolidayHrs" type="hidden" class="bros"/></td>
</tr>
</table>
解决方案
当我移动到另一列时,我想调用 javascript 函数 changecolumn()
正如@Barmar 提到的,请注意焦点通常会影响输入或可编辑内容等,并非所有 html 元素都可以被聚焦。
如果您想changecolumn()
在用户单击另一列时调用 js 函数,您可以尝试以下解决方法。
设置一个标志data-cindex
指示当前列的索引td
<table id="attendance">
<tr>
<td data-cindex="0"><input type="checkbox" value="true" asp-for="@Model.attendanceLogList[i].IsSickMarked" data-tag="SickHrs" /> <input type="hidden" value="false" asp-for="@Model.attendanceLogList[i].IsSickMarked" /></td>
<td data-cindex="1"><a href="#" data-pk="SickHrs">@Model.attendanceLogList[i].SickHrs</a><input asp-for="@Model.attendanceLogList[i].SickHrs" type="hidden" class="bros" /></td>
<td data-cindex="2"><input type="checkbox" value="true" asp-for="@Model.attendanceLogList[i].IsHolidayMarked" data-tag="HolidayHrs" /><input type="hidden" value="false" asp-for="@Model.attendanceLogList[i].IsHolidayMarked" /> </td>
<td data-cindex="3" class="htInvalid"><a href="#" data-pk="HolidayHrs">@Model.attendanceLogList[i].HolidayHrs</a><input asp-for="@Model.attendanceLogList[i].HolidayHrs" type="hidden" class="bros" /></td>
</tr>
</table>
跟踪先前选择的列索引并将其与 td 单击事件上的当前列索引进行比较
$(function () {
//set default value based on your actual requirement
var selected_c_index = 0;
$("table#attendance tr td").click(function () {
var cindex = $(this).data("cindex");
if (selected_c_index!=cindex) {
selected_c_index = cindex;
changecolum();
}
})
})
推荐阅读
- python - python multiprocessing:为每个工作人员提供一个特定的参数
- php - Visual Composer:如何在摘录字段中允许 html 标签
- django - django - apscheduler 如何在 uwsgi 重新启动时保持工作
- shell - 如果文件编码为 utf-16le,则获取垃圾字符
- c++ - 使用“shared_ptr”行为从基类转换为派生类
- next.js - Next.js api 路由解析为 404 但通过邮递员可以正常工作
- docker - Selenoid Docker ssl 证书
- python - 这个 for 循环如何在 Spacy 的自定义 NER 训练代码中工作?
- javascript - 带有 requireJS 的 bootstrap-sweetalert 显示警报框“无效”
- sql - 在大表(600 万条记录)上创建主键,而不在 PostgreSQL 中锁定表