我有一个带有ajax和jquery的asp.net网站。 我需要在两个jquery脚本文件中使用jquery pageLoad函数,但问题是它只能在一个首页附加的主页中工作。
我创建了简单的视觉stuido测试网站项目,如果您下载并查看它,我将非常高兴。
我将它上传到mediaFire http://www.mediafire.com/?4b71u9jvo0mxru3只需5kb,请帮助我某人
答案 0 :(得分:4)
每页只能有一个页面加载。我下载了你的代码,我改变了这个:
在MasterPage.master中:
<asp:ScriptManager ID="MainScriptManager" runat="server" EnablePartialRendering="true">
<Scripts>
<asp:ScriptReference Path="~/jscript/btnFirst.js" />
<asp:ScriptReference Path="~/jscript/second.js" />
</Scripts>
</asp:ScriptManager>
然后将其删除:
<script type="text/javascript" src="jscript/second.js"></script>
<script src="jscript/btnFirst.js" type="text/javascript"></script>
在btnFirst.js中(例如)将pageLoad更改为:
// Attach a handler to the load event.
Sys.Application.add_load(applicationLoadHandler);
function applicationLoadHandler() {
$('#btnFirst').each(function () {
$('#btnFirst').css('text-decoration', 'none');
$('#btnFirst').css('opacity', '1');
var elem = $(this);
setInterval(function () {
if (elem.css('opacity') == '1') {
elem.css('opacity', '0.1');
} else {
elem.css('opacity', '1.0');
}
}, 500);
});
};
你已经完成了; - )
答案 1 :(得分:0)
您应该使用$(document).ready而不是使用pageLoad()。这通过将匿名函数传递给添加到队列的.ready()函数来实现。加载DOM后,将运行所有匿名函数。
$(document).ready(function(){
// your function code here
});
答案 2 :(得分:0)
我的同事(感谢James)提出的另一种方法是使用自定义事件(请注意,这仍在测试中)。
步骤1:在母版页中,将以下内容作为最后一个脚本(在其他脚本之后):
<script type="text/javascript">
function pageLoad(sender, args) {
$(document).trigger('PartialPageLoad');
}
</script>
步骤2:在脚本文件中,当您想在pageLoad上执行某些操作时,请按如下方式附加到事件:
$(document).on('PartialPageLoad', function () {
doSomething();
doSomethingelse();
});