数码资讯
UpdatePanel和jQuery不相容的局部刷新jQuery失败
在项目中,发现在UpdatePanel的地方使用,后局部刷新,jQuery的失败。 稍后,我们发现,在DOM完全加载之后,jQuery中的就绪事件将运行。后来,当我们使用UpdatePanel,只有本地更新并没有加载jQuery DOM的所有页面,所以准备事件不会再次执行。因此,我们可以提取准备的事
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
在项目中,发现在UpdatePanel的地方使用,后局部刷新,jQuery的失败。
稍后,我们发现,在DOM完全加载之后,jQuery中的就绪事件将运行。后来,当我们使用UpdatePanel,只有本地更新并没有加载jQuery DOM的所有页面,所以准备事件不会再次执行。因此,我们可以提取准备的事件执行代码,然后捕获scriptManager EndRequest事件,并执行jQuery初始化代码一次UpdatePanel局部刷新。
复制代码代码如下所示:
Ajax与scriptManager /冲突管理
函数加载(){
Sys.WebForms.PageRequestManager.getInstance()。add_endrequest(endrequesthandler);
}
函数的EndRequestHandler(){
$(函数(){())
$(把),(输入框)。每个(功能(关键,Val){)
$(瓦尔)Click(函数(){)
无功cbxid =美元(这)。Attr(ID);
无功状态=美元(这)。Attr(检查);
美元。后(阿贾克斯 / updateStatus .ashx
});
});
$(线),发现(输入复选框(Click)。
函数(){
如果(确认)您想更新这个数据列吗= true){)
无功cbxid =美元(这)。Attr(ID);
变量名= cbxid.substr(16);
var v =tbody。+姓名+输入{类型= 'checkbox};
如果($(this)。Attr(检查)= =检查){
$(V),Attr(查看
}
{其他
$(V),Attr(查看
}
无功状态=美元(这)。Attr(检查);
美元。后(阿贾克斯 / updateStatus .ashx
}
{其他
如果($(this)。Attr(检查)= =检查){
$(这)。Attr(查看
}
{其他
$(这)。Attr(查看
}
}
});
});
InitCheckedStaus();
}
稍后,我们发现,在DOM完全加载之后,jQuery中的就绪事件将运行。后来,当我们使用UpdatePanel,只有本地更新并没有加载jQuery DOM的所有页面,所以准备事件不会再次执行。因此,我们可以提取准备的事件执行代码,然后捕获scriptManager EndRequest事件,并执行jQuery初始化代码一次UpdatePanel局部刷新。
复制代码代码如下所示:
Ajax与scriptManager /冲突管理
函数加载(){
Sys.WebForms.PageRequestManager.getInstance()。add_endrequest(endrequesthandler);
}
函数的EndRequestHandler(){
$(函数(){())
$(把),(输入框)。每个(功能(关键,Val){)
$(瓦尔)Click(函数(){)
无功cbxid =美元(这)。Attr(ID);
无功状态=美元(这)。Attr(检查);
美元。后(阿贾克斯 / updateStatus .ashx
});
});
$(线),发现(输入复选框(Click)。
函数(){
如果(确认)您想更新这个数据列吗= true){)
无功cbxid =美元(这)。Attr(ID);
变量名= cbxid.substr(16);
var v =tbody。+姓名+输入{类型= 'checkbox};
如果($(this)。Attr(检查)= =检查){
$(V),Attr(查看
}
{其他
$(V),Attr(查看
}
无功状态=美元(这)。Attr(检查);
美元。后(阿贾克斯 / updateStatus .ashx
}
{其他
如果($(this)。Attr(检查)= =检查){
$(这)。Attr(查看
}
{其他
$(这)。Attr(查看
}
}
});
});
InitCheckedStaus();
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。