The*_*max 34 javascript c# asp.net jquery user-controls
我有一个页面,其中包含更新面板中的用户控件.$(document).ready(function() ) {是所谓的正确执行代码时的页面加载首创,但如果用户点击一个按钮(用户控制范围内),将document.ready()不会被调用(document.load,onload也不工作)
我在网上研究了这个,发现了类似的问题,但没有什么可以解释为什么这不起作用.还有什么其他原因可以document.ready不起作用?
El *_*oco 47
这将是部分回发的问题.DOM不会重新加载,因此不会再次命中文档就绪函数.您需要在JavaScript中分配部分回发处理程序,如此...
function doSomething() {
//whatever you want to do on partial postback
}
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(doSomething);
Run Code Online (Sandbox Code Playgroud)
上面的调用add_endRequest应该放在首次加载页面时执行的JavaScript中.
pha*_*phy 15
我刚刚遇到过这个问题,正如El Ronnoco所说,它必须与DOM没有重新加载.但是你可以简单地
$(document).ready(function() {
改为
Sys.Application.add_load(function() {
Run Code Online (Sandbox Code Playgroud)
这将迫使它在每次回发时运行.
您也可以使用函数pageLoad(),但是您只能有一个pageLoad函数,而使用Sys.Application.add_load,您可以根据需要添加任意数量的处理程序.
Pra*_*ana 10
Bestest方式是
<asp:UpdatePanel...
<ContentTemplate
<script type="text/javascript">
Sys.Application.add_load(LoadScript);
</script>
you hemla code gose here
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
Javascript功能
<script type="text/javascript">
function LoadScript() {
$(document).ready(function() {
//you code gose here
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
要么
它在UpdatePanel下比您需要再次注册客户端脚本使用
ScriptManager.RegisterClientScript
Run Code Online (Sandbox Code Playgroud)
要么
$(document).ready(function() {
// bind your jQuery events here initially
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
// re-bind your jQuery events here
loadscript();
});
$(document).ready(loadscript);
function loadscript()
{
//yourcode
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54589 次 |
| 最近记录: |