updatePanel导致JS失效的解决办法


今天给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()中,在分页绑定数据后,重新注册一下即可。

同理,当别的控件回传后,也需要重新注册下即可。

Over~


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM