updatePanel导致JS失效的解决办法(转)
吐槽下,维护别人之前做的项目好蛋疼,整个页面都是用微软的ajax框架。
今天给repeater用JS写一个hover事件
<script type="text/javascript"> $(function(){ $('.trhead').click(function(){ $(this).next('.trcontent').find('.divcontent').slideToggle('fast'); }); $('.trhead').hover(function(){$(this).css("background",'rgb(215,215,215)');}, function(){$(this).css("background",'#fff');} ); }) </script>
结果 repeater翻到第二页后,效果失效了,也就是JS没了。
这个时候,就在
protected void AspNetPager3_PageChanged(object sender, EventArgs e) { BindData(); //绑定数据后重新注册一下JS事件 ScriptManager.RegisterClientScriptBlock(up1, GetType(), "aa", "aa()", true); }
而这个aa()函数呢,当然啦,就是:
<script type="text/javascript"> function aa() { $('.trhead').click(function(){ $(this).next('.trcontent').find('.divcontent').slideToggle('fast'); }); $('.trhead').hover(function(){$(this).css("background",'rgb(215,215,215)');}, function(){$(this).css("background",'#fff');} ); } </script>
也就是把onload要执行的JS,放到一个方法aa()中,在分页绑定数据后,重新注册一下即可。
同理,当别的控件回传后,也需要重新注册下即可。
作者:Cat Qi
出处:http://qixuejia.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://qixuejia.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。