使用jQuery / ajax选择表行

时间:2012-06-29 07:17:02

标签: jquery ajax html-table

当用户点击表格行时,我使用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一起显示。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

我在过去实现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>

希望这有帮助。