我有一个aspx页面(在这个主页面中调用了JQuery.js)。现在这与http://code.jquery.com/jquery.js
相关联在这个页面中,我有一个updatepanel,它动态加载不同的用户控件,然后加载自己的JS文件(使用scriptmanager)。现在在部分回发中我丢失了JQuery函数(例如.val返回undefined)。
[code]
function pageLoad(){
//whatever you want to do on partial postback
//alert('partial handler');
$(jutb).watermark('Username or Email address');
$(jptb).watermark('Password');
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
// Called when async postback begins
function InitializeRequest(sender, args) {
// alert("You are in the InitializeRequestHandler function."); // breakpoint here
}
// Called when async postback ends
function EndRequestHandler(sender, args) {
// this function is run after an Ajax partial postback occurs
loadUsername();
loadPassword();
if (args.get_error() != undefined)
alert("There was an error" + args.get_error().message);
return;
}
[/code]
我的页面加载正在部分回发中调用。 (即我可以提醒它。)
我有一个触发一些JS代码的linkbutton。在部分回发之后,如果我尝试它.val返回undefined。
为什么JQuery会丢失的任何想法?
答案 0 :(得分:1)
当您将响应从服务器返回到更新面板时,您在第一次加载页面时所做的所有事件处理程序绑定都会被破坏,因为这些绑定现在是新元素,即使它们满足相同的选择条件。
您可以尝试重新运行事件处理程序绑定 - 您可以创建某种init
JS函数,并在EndRequestHandler
中调用。
其他方式,可能更好,是使用jQuery的on
将您的元素绑定到事件处理程序。看看如何使用它: