首页 新闻 赞助 找找看

asp.net 用updatepanel后jquery代码失效

0
悬赏园豆:30 [已解决问题] 解决于 2015-05-21 10:27

function load() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}我用上面方法,jquery是可以用了,但是,是在局部刷新执行完之后才有效的,就要点下button之类的,jquery才有效果,如何才能在网页打开时就执行jquery代码???

code不是代码的主页 code不是代码 | 初学一级 | 园豆:43
提问于:2012-09-14 18:12
< >
分享
最佳答案
0

要想jQuery在页面打开时就执行需要把你要写的代码写到ready里,也就是下面的这个函数里

$(function(){

});

才能在页面一加载时就执行吧  你试下希望能帮到你

收获园豆:30
强者运强 | 菜鸟二级 |园豆:338 | 2012-09-14 21:07

这个我知道,这样写在使用updatepanel时是没有效果的,官方解释是dom没有加载完。

code不是代码 | 园豆:43 (初学一级) | 2012-09-14 21:30
其他回答(1)
0

你是怎么引用jquery的?

向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-14 18:36

我把代码贴一下吧

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才有效果。。

支持(0) 反对(0) code不是代码 | 园豆:43 (初学一级) | 2012-09-14 21:29

@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() };
};
}
)();
}
支持(0) 反对(0) 向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-14 23:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册