function load() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}我用上面方法,jquery是可以用了,但是,是在局部刷新执行完之后才有效的,就要点下button之类的,jquery才有效果,如何才能在网页打开时就执行jquery代码???
要想jQuery在页面打开时就执行需要把你要写的代码写到ready里,也就是下面的这个函数里
$(function(){
});
才能在页面一加载时就执行吧 你试下希望能帮到你
这个我知道,这样写在使用updatepanel时是没有效果的,官方解释是dom没有加载完。
你是怎么引用jquery的?
我把代码贴一下吧
function load() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
function EndRequestHandler() {
(function () {
var n = 0;
var obj = document.getElementById("AdLayer");
if (!obj) { return false; }
var x = 0;
var fe = $("#AdLayer");
window.onscroll = function () {
x = (document.body.scrollTop || document.documentElement.scrollTop) + n;
if (x < 300) { fe.fadeOut().hide() } else { fe.fadeIn().show() };
};
}
)();
}
就是在load的事件引用了load的函数。updatepanel里直接使用jquery是没有效果的,就用了这种方法,但是这种方法,在局部刷新执行完之后才有效的,就要点下button之类的,jquery才有效果。。
@code不是代码:
何不就全部用jquery?asp.net ajax看起来好别扭。
不懂.net ajax,或可让下面那个函数一直延迟执行,直到加载完:
function EndRequestHandler() { var fn=function () { clearTimeout(window.delay); if(!$ || $("#AdLayer").length==0 ){ window.delay=setTimeout(fn,100); return; } var n = 0; var obj = document.getElementById("AdLayer"); if (!obj) { return false; } var x = 0; var fe = $("#AdLayer"); window.onscroll = function () { x = (document.body.scrollTop || document.documentElement.scrollTop) + n; if (x < 300) { fe.fadeOut().hide() } else { fe.fadeIn().show() }; }; } fn(); }
或放在window.onload里:
function EndRequestHandler() { ( window.onload=function () { var n = 0; var obj = document.getElementById("AdLayer"); if (!obj) { return false; } var x = 0; var fe = $("#AdLayer"); window.onscroll = function () { x = (document.body.scrollTop || document.documentElement.scrollTop) + n; if (x < 300) { fe.fadeOut().hide() } else { fe.fadeIn().show() }; }; } )(); }