我有一个asp:UpdatePanel隐藏或不基于OnSelectedIndexChanged的asp:DropDownList背后的代码。
显示此更新面板时,有一些jquery要突出显示新区域:
$(document).ready(function(){
$('#Alert').animate({backgroundColor:'#FF953F'});
$('#Alert').animate({backgroundColor:'white'}, 3000);
});
一旦再次显示更新面板,这很有效,但是第一次返回时,jquery在后面的代码之前运行,因此有一个3000ms暂停,然后面板显示没有突出显示。
如何在显示面板后确保jquery运行?
我尝试在JavaScript中添加if visible和delay:
$('#<%=ddlInfo.ClientID %>').change(function(){
if( $('#Alert').is(':visible')){
$('#Alert').animate({backgroundColor:'#FF953F'});
$('#Alert').animate({backgroundColor:'white'}, 3000);
};
});
由于JavaScript在面板返回之前运行,因此没有进行更改。
延迟:
$('#Alert').delay(1000).animate({backgroundColor:'#FF953F'});
这极大地推迟了小组的显示,因为后面的代码必须等到延迟完成才能再次显示小组。
感谢你提出任何想法。
答案 0 :(得分:1)
您是否尝试过EndRequestHandler
?
请看下面的帖子。
在asp.net论坛上搜索endRequestHandler有很多好帖子。
我希望这可以提供帮助。
鲍勃
答案 1 :(得分:0)
您是否可以通过页面脚本管理器在OnSelectedIndexChanged事件处理程序的末尾注册脚本?
您可能还需要手动告诉更新面板刷新。
答案 2 :(得分:0)
试试这个:
$('#<%=ddlInfo.ClientID %>').load(function(){
if( $(this).is(':visible'))
{
$('#Alert').animate({backgroundColor:'#FF953F'});
$('#Alert').animate({backgroundColor:'white'}, 3000);
};
});
我不知道页面是怎样的,但你需要做同样的事情。
希望它有所帮助! ;)