我有一个ASP网页(.NET 3.5),上面有2个更新面板 我也在使用jQuery t显示技巧并使用jQuery UI创建标签。
网页工作正常,直到我更新UpdatePanel的内容。 在网上搜索并在我的网站上做点什么我得到了这个解决方案:
在我的页面标题中,我正在链接我的js文件:
<script type="text/javascript" src="../js/jquery-1.7.2.min.js"> </script>
<script type="text/javascript" src="../js/jquery-ui-1.8.20.custom.min.js"> </script>
<script type="text/javascript" src="../js/jquery.ui.selectmenu.js"></script>
<script type="text/javascript" src="../js/tipsy.js"></script>
<script type="text/javascript" src="scripts.js"></script>
然后我像我这样定义我的ToolkitScriptManager:
<asp:ToolkitScriptManager runat="server" EnablePartialRendering="True">
<Scripts>
<asp:ScriptReference Path="refresh.js"/>
</Scripts>
</asp:ToolkitScriptManager>
我的refresh.js内容如下:
Sys.Application.add_init(AppInit);
function AppInit(sender) {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(End);
}
function End(sender, args) {
initAll();
}
我的scripts.js看起来像这样:
...
//here I create all my functions
...
function initAll()
{
//here I call I my functions
$("#tip1").tipsy({ gravity: 'e', fade: true, offset: 10 });
initDatePicker();
$("#tabs").tabs();
$("#radioset1").buttonset();
$("#radioset2").buttonset();
$('select').selectmenu();
$("input:button, input:submit").button();
initDatePickers();
initAutocomplete();
}
$(function() {
initAll();
});
//this function shows content of my page after jQuery is ready.
$(window).load(function() {
$("#loading").hide("fast", function() {
$("div.fullsize").show()
})
});
这样我在页面加载时创建了所有功能,然后当我更新我的updatePanel时,它们被“刷新”。
这对我现在有用,但我想知道这是否是正确的方法并进行了优化。
当我在updatePanel刷新后在initAll
函数中添加事件监听器时,它们会再次添加(我是对的吗?)。
我的问题:
$(window).load()
够了吗?我在我的网站中使用了多个js文件
解决方案,我不希望我的网站因为我使用而抛出错误
函数来自未加载的文件。