当用户单击表格行时,我使用 jQuery 选择其中一个单元格中的链接。从我的搜索来看,这是相当标准的。
$(document).ready(function () {
$('table.timecarddetail tr').click(function () {
var href = $(this).find("a").attr("href");
if (href) {
window.location = href;
}
});
});
注意:table.timecarddetail是表类。
嵌入的链接本质上是一个ajax调用,因此它不会进行完整的回发,并且页面不会刷新。我的问题是该事件触发一次,但随后的点击将被忽略。
技术细节:我使用的是VS2010,每个链接都指向传递记录ID的相同过程。模态弹出扩展面板由该记录中的数据填充,然后通过 panel.show 显示。
我在这里做错了什么?
最佳答案
我过去在实现 JQueryUI 时也遇到过同样的问题。脚本管理器在 ajax 回发后销毁 javascript。您可以通过将其包装在一个函数中并在 ajax 调用的开始和结束时回调它来解决这个问题
Jquery
$(document).ready(function () {
setRows();
});
function setRows() {
$('table.timecarddetail tr').click(function () {
var href = $(this).find("a").attr("href");
if (href) {
window.location = href;
}
});
}
然后在您的页面中将其放在脚本管理器之后
<asp:ScriptManager runat="server">
</asp:ScriptManager>
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
setRows();
}
function EndRequestHandler(sender, args) {
setRows();
}
</script>
希望这有帮助。
关于jquery - 使用 jQuery/ajax 选择表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11257643/