jQuery函数问题

时间:2009-03-12 18:25:07

标签: asp.net javascript jquery

我有一个关于jQuery函数的问题。我有一个功能,一旦浏览器准备好,该功能找到一个特定的表,然后添加悬停&点击它的功能。

我试图从asp .net页面中的代码调用此函数,因为一旦有人添加到数据库,更新面板将触发并检索gridview(受文档中函数影响的表) 。准备)。当它回来时它又是普通的桌子。

以下是原始功能:

$("#GridView1").find("tr").click(function(e) {
                var row = jQuery(this)
                //var bID = row.children("td:eq(0)").text();
                $('#tbHiddenBatchID').val(row.children("td:eq(0)").text());
                //Took out repetitive code, places values from table into modal




                e.preventDefault();
                $('#modalContentTest').modal({ position: ["25%", "5%"] });
                //row.addClass('highlight');
                //$('#tbEdit').val(bID);
            });

//here is the function that adds hover styling
$("#GridView1").find("tr").click(function() {
            return $('td', this).length && !$('table', this).length
        }).css({ background: "ffffff" }).hover(
            function() { $(this).css({ background: "#C1DAD7" }); },
            function() {
                $(this).css({ background: "#ffffff" });

            });

好的,我尝试做的是创建一个函数,在document.ready上调用它,并在数据库更新后的代码中调用它。

这就是我的所作所为:

function helpGrid() {
            $("#GridView1").find("tr").click(function(e) {
                var row = jQuery(this)
                //var bID = row.children("td:eq(0)").text();
                $('#tbHiddenBatchID').val(row.children("td:eq(0)").text());
                //
                e.preventDefault();
                $('#modalContentTest').modal({ position: ["25%", "5%"] });
                //row.addClass('highlight');
                //$('#tbEdit').val(bID);
            });

//Haven't even tried to add the hover stlying part yet; can't get this to work.
        }

当我尝试调用helpGrid()时;我得到一个错误,它没有定义......

显然我是一个jQuery newb但是我确实有jQuery in Action&我现在正在寻找答案......

请帮助..

感谢!!!

1 个答案:

答案 0 :(得分:3)

由于您使用的是更新面板,因此整个页面不会回发,并且document.ready的内容永远不会被点击...下面是您可以添加在更新结束时运行的函数的位置,因此resetMyTableStuff() ;是你想要做你的魔术......

尝试添加类似的东西......

function pageLoad() {
    if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) {
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
        Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(initializeRequest);
    }
}

function endRequestHandler(sender, args) {
     resetMyTableStuff();
}

function initializeRequest(sender, args) {
      //just in case you need to do it...
}