父页面中的 JQuery 未在部分视图中检测到 id 元素
JQuery in parent page not detecting id element in partial view
我有一个动态id元素"deleteSite"(在部分视图中),单击该元素将从表中删除站点。当我单击它时,除了第一个元素之外,没有调用jquery函数(在父页面中)。请帮助我看看这里出了什么问题。
页面正常加载,但在分页期间通过 ajax 加载
这是我的部分观点
@model IPagedList<MvcSIMS.Models.Site>
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th style="width: auto;">SlNo</th>
<th>SiteName</th>
<th>Remarks</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.Select((x, i) => new { Data = x, Index = i }))
{
<tr>
<td>@(item.Index + ((Model.PageNumber - 1) * Model.PageSize) + 1)</td>
<td>@Html.DisplayFor(modelItem => item.Data.SITENAME)</td>
<td>@Html.DisplayFor(modelItem => item.Data.REMARKS)</td>
<td>
<a href="@Url.Action("Edit", new { id = item.Data.ID })" class="btn btn-sm btn-primary">
<span class="glyphicon glyphicon-edit" aria-hidden="true"></span>
</a>
<a id="deleteSite" href="@Url.Action("Delete", new { id = item.Data.ID })"
class="btn btn-sm btn-danger delete">
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
</a>
</td>
</tr>
}
</tbody>
</table>
这就是我的jquery正在做的事情 -
$(function () {
//Delete function
$("#deleteSite").click(function () {
alert("hai");
return false;
})
};
这是因为 id 必须是唯一的,所以 jQuery 只会返回一个。请考虑使用类来标识按钮,例如:
class="delete-site"
然后将你的 jQuery 更改为 (我们还委托事件,因此 n 个项目只有一个事件,这意味着以后通过 AJAX 添加的项目仍将为此事件注册):
$(document).on("click", ".delete-site", function () {
alert("hai");
return false;
});
在你的代码中,你有一个循环
@foreach (var item in Model.Select((x, i) => new { Data = x, Index = i }))
你在里面做这个
<a id="deleteSite" href="@Url.Action("Delete", new { id = item.Data.ID })"
这意味着"deleteSite"的出现次数将与模型中的项目一样多。这是无效的,因为每个ID在页面/子页面中必须是唯一的。
您可以尝试使用类或数据属性来执行此操作。
<a class="deleteSite" href="@Url.Action("Delete", new { id = item.Data.ID })"
然后将脚本替换为
$('.delete-site').on("click", function () {
alert("hai");
return false;
});
相关文章:
- 在IE9中未检测到视图模型函数绑定,但在FF和Chrome中有效
- 如何检测一个数据角色=“页面”中对特定列表视图项的单击,并在另一个数据上显示相应的数据
- 父页面中的 JQuery 未在部分视图中检测到 id 元素
- 检测网站是在应用的 Android 浏览器还是网页视图中运行
- 检测所有图像何时加载到角度.js视图中
- 如何在 Javascript Metro 应用程序中检测列表视图中项目的右键单击
- 角度重定向到其他方式而不检测视图,但当我单击后退按钮时它可以工作
- 如何检测添加到剑道窗口的视图上的单击或单击事件
- 尝试检测网格视图的哪一行处于编辑模式,然后在选中复选框字段时调整文本框
- 检测视图模型属性是否在不刷新的情况下发生更改
- Fullcalendar检测右键单击议程视图上的空时段
- AngularJS指令用于用户协议视图,检测启用按钮,不适用于移动safari
- jQuery JavaScript在视图/窗口中检测对象
- Jquery Mobile检测在列表视图中单击了哪一行
- 检测另一个视图何时被触摸-在react native中使用PanResponder拖动
- 如何在JavaScript中检测是否在Chrome网络视图中加载了页面
- 在视图中检测动画元素
- 对于opera mini,使用javascript检测移动视图是否打开或关闭
- MVC4视图未检测到JQuery
- EmberJS视图-检测是否所有子视图都已渲染