[英]Maintaining JavaScript Code in the <Head> after ASP.Net Postback.
正如标题所示,我在回发时维护代码时遇到问题。 我在Head部分有一堆jQuery代码,这个工作正常,直到发生回发,之后它停止运行!
我怎样才能解决这个问题? 头部没有在回发上阅读,有没有办法可以强迫这种情况发生?
JavaScript是:
<script type="text/javascript">
$(document).ready(function()
{
$('.tablesorter tbody tr').tablesorter();
$('.tablesearch tbody tr').quicksearch({
position: 'before',
attached: 'table.tablesearch',
stripeRowClass: ['odd', 'even'],
labelText: 'Search:',
delay: 100
});
});
</script>
如果您只是将代码硬编码到页面的头部,那么回发邮件不会影响它。 我会通过调试检查以下内容(FireFox中的FireBug是一个很好的调试器):
编辑:您是否使用UpdatePanels回复邮件? 换句话说,这是异步回发还是普通的整页刷新?
编辑编辑:啊......好吧。 因此,如果您正在使用UpdatePanels,那么文档的就绪状态已经准备就绪,因此不会再次触发jquery代码的一部分。 我会将jquery委托提取到一个单独的函数,您也可以在异步回发后调用它。
把你的代码放进去
function pageLoad(sender, args) {
/* code here */
}
代替$(document).ready(function() { ... });
pageLoad()
是一个将在所有回发,同步和异步之后执行的函数。 有关详细信息,请参阅此答案
我猜测回发预先抢占了页面的onLoad事件,jQuery需要挂钩才能使用它的.ready()。
alert('test');
您应该将代码放在名为pageLoad()的函数中,而不是使用$(document).ready。 按照惯例,只要页面有回发/ asyncpostback,就会调用pageLoad()函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.