我有一个关于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&我现在正在寻找答案......
请帮助..
感谢!!!
答案 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...
}